home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
OBV230-F.ZIP
/
OBV.DOC
< prev
Wrap
Text File
|
1995-07-19
|
301KB
|
6,385 lines
┌───────────────────────────────────────────────────────────┐
│ │
│ │
│ Oblivion/2 Bulletin Board System │
│ Version 2.30 │
│ │
│ Copyright (C) 1991-1995 Darkflame Enterprises. │
│ All rights reserved. No part of this documentation may │
│ be altered without the consent of Darkflame Enterprises. │
│ │
│ Written by: Eric Katz (Referred to as Darkened Enmity) │
│ : Rony Daher (Referred to as Lord Tracer) │
│ Documentation: Rony Daher │
│ : Morten Mertner │
│ : Guy Rotowski │
│ │
└───────────────────────────────────────────────────────────┘
TABLE OF CONTENTS
─────────────────
LEGAL INFORMATION 1
GENERAL OVERVIEW 1.1
REGISTRATION 1.2
FOR THE BEGINNING SYSOP 1.3
ACS SYSTEM 2
CONFIGURATION PROGRAM 3
MENUCODE/STATCODE/MAKEPROM/MAKEHELP 4
DATA AREA CONFIGURATION 5
CONFERENCE EDITOR 6
SYSOP ONLINE FUNCTIONS 7
INFOFORMS 8
MAKING REPEAT ANSIS 9
MAKING STANDARD ANSIS 10
MCI CODES / SYSOP CONFIGURABLE TEXTFILES 11
CONFIGURABLE CHAT 12
MENU EDITOR 13
MESSAGE / FILE BASE SETUP 14
UPLOAD CHECKER 15
CONFIGURABLE ARCHIVERS 16
GENERIC MENU CONFIGURATION 17
FUNCTIONS OF ANSI.SYS 18
SETTTING UP WITH OS/2 19
USING E-MAIL TAGS 20
SECTION 1: LEGAL INFORMATION
────────────────────────────
Darkflame Enterprises grants to the Purchaser and
Purchaser accepts a nontransferable and non-exclusive license
to use, on a single computer, the Software Products and
accompanying materials provided to Purchaser by Darkflame
Enterprises. Purchaser is hereby licensed only to read the
program from its medium into the memory of a single
computer solely for the purpose of executing the program.
Darkflame Enterprises shall have the right to terminate this
license if purchaser violates any of its provisions.
Purchaser agrees that the Software Products and accompanying
materials are the property of Darkflame Enterprises and that
Darkflame Enterprises shall maintain title to and ownership
of the Software Products at all times. Purchaser agrees to
make no more than one (1) additional working copy and one (1)
backup copy of the Software Products for personal use only.
Except as indicated above, the Software Products may not, in
whole or part, be copied, reproduced, translated, or
distributed to other parties.
Darkflame Enterprises makes no warranties of any kind,
expressed or implied, with respect to the quality,
performance, accuracy, or fitness of the Software Products
for any particular purpose. Darkflame Enterprises assumes no
responsibility for any decisions made or actions taken on the
part of the Purchaser because of the use of the Software
Products. In no event shall Darkflame Enterprises, or any of
its representatives, be liable for any loss of profit or any
other damages, including but not limited to special,
incidental, consequential or other damages, arising
out of the use or inability to use this product -even if
Darkflame Enterprises or an authorized agent of such has been
advised of the possibility of such damages -or for any claim
by any other party.
SECTION 1.1: GENERAL OVERVIEW
─────────────────────────────
Oblivion/2 BBS was designed with two things in mind: The
SysOp, and the user. This bulletin board program attempts to
give the best of both worlds: Power for the SysOp, and ease
of use for the user. With the unique menu editor, and
configurable ACS system, the power is present. The
possibility for change gives the SysOp his power, while also
giving the user an easy interface for operations.
List of major features:
o Powerful menu editor. Allows for configuring all aspects
of the BBS.
o Configurable String editor. No more internal strings.
Add a personal touch to your BBS!
o Optimized for increased speed. Runs fast on any machine!
o Support for multiple menu sets.
o Support for multiple stat screen sets.
o Echomail/Netmail Compatible.
o Configurable Data Area System. Create your own
BBS/VMB/NUA listing, and configure them any way you
wish. Similar to an online database, but completely
configurable.
o Support for SR/PCBOARD.SYS/CHAIN.TXT door file formats.
o Support for up to 255 separated message/file
conferences.
o Support for multiple prompts. User selectable.
o Integrated upload checking system! Checks all uploaded
files for CRC, viruses, and runs age tests. Also
includes ability for additional SysOp specified
maintainence to uploaded files!
o Support for multiple, SysOp configurable archivers!
Anything on the BBS can be packed and unpacked in your
favorite archive type. Also includes automatic archive
signature recognition. The BBS knows what type of
archiver a file was packed in w/o looking at its
extension!
o Advanced user editor with integrated searching
functions!
o Parameter editor for easy control and maintenance of
user levels!
o Advanced online RIP graphics support for transmitting
graphic images over the modem.
o Configurable Generic Menu system. No longer do SysOps
have to edit menus when they change commands. With the
generic menus, the BBS can do your editing for you.
SECTION 1.2: REGISTRATION
─────────────────────────
Registration of Oblivion/2 is simple. All of our
registrations are handled through our HQ support system. This
system, The Fringes, can be reached at 216-464-4856.
The registration fee for Oblivion/2 is $50 US payable
in either a cashier check or money order. Please fill and
print out a copy of ORDER.FRM (available with the distribution
ZIP or from the Fringes). Include the form with your registration
fee.
Please send registration to the following address:
Rony Daher
PO BOX 43364
Cleveland, OH 44143-0364
USA
Make checks payable to: Rony Daher
To clear up certain things about registration, keep
these things in mind:
o A completed ORDER.FRM MUST be sent with your order.
o Personal checks are NOT accepted. If you send one, your
order will be returned. Please send a cashier check or a
money order.
o You cannot transfer your registration to a friend. All
registrations are handled with us.
o Please do NOT send Canadian Postal money orders. They're
hard to cash.
o If you're registering overseas, or anywhere outside of
the US & Canada, make sure to get your money order from
a larger bank. Smaller chains are VERY hard to cash
here. For Europeans and Australians, Citibank seems to
work well.
o If your handle on the Fringes is different than the
SysOp name which you are using for your BBS, please
indicate this somewhere on your ORDER.FRM. If you
fail to do this, your registration may be delayed.
o Once you are validated on the Fringes, you are free
to register at any time. You need not get any sort
of approval as in previous release versions.
Registration is handled through a serial number system.
When we validate your registration, you will receive a ZIP
containing a textfile named SERIAL.NUM. Inside this textfile,
you'll find a BBS Name, BBS SysOp, and a 20-digit serial
number. Enter that information in your Obv/2 config EXACTLY
as they appear in the SERIAL.NUM. If the information is not
correct, the BBS will not register.
Should you lose your SERIAL.NUM, please contact any
member of the Oblivion/2 staff, and a new one will be made
available to you.
If you decide to distribute your SERIAL.NUM file, a
beta version of Oblivion/2, or anything reserved for registered
SysOps only, your registration will be immediately cancelled.
No questions asked. No refunds given. No exceptions made.
If you wish to get in contact with the Oblivion/2 team,
please mail us on The Fringes, or at this address. Due to the
large amount of mail received, we cannot guarentee replies.
Oblivion/2 Team
Post Office Box 43364
Cleveland, Ohio 44143-0364
USA
SECTION 1.3: FOR THE BEGINNING SYSOP
────────────────────────────────────
This section has been designed to provide general information
for a SysOp who is not familiar with the basic operations of
Oblivion/2. If you are an advanced user, or have more than the
basic knowledge and understanding of the software, skip this
section.
(1) The DSZLOG - If you're new to SysOping or new to Oblivion/2
you might encounter the error "Set the DSZLOG to C:\OBV\DSZLOG.1"
or an equivelant. The DSZLOG is a textfile which logs the
activity of one of Oblivion/2's support programs, DSZ.COM. DSZ
is used by Oblivion/2 for X/Y/Zmodem Transfers. The BBS reads
this DSZLOG file following a transfer in order to determine
the status of the transfer. You see this in the upload/download
status screen (displayed just after you upload or download.)
If this setting is not present, Obv/2 will not run. The DSZLOG
is set by adding the line "SET DSZLOG=C:\OBV\DSZLOG.1" into
your AUTOEXEC.BAT, or a batch file that runs Oblivion/2.
Replace "C:\OBV\DSZLOG.1" with the value that Oblivion/2 gives
you.
(2) Batch Oriented File System - Oblivion/2's file system is
known as a batch oriented file system. This means that you
are able to do operations on many files at once. Operations
include downloading, uploading, typing, moving, deleting,
changing, getting information on, and so forth. Almost all
of Oblivion/2's file functions are designed with this sense of
a batch. In order to utilize these powerful tools, you must
create a batch of files. Do this by selecting files (using your
up/down arrow keys, or the numbers 8/2 for up/down respectively)
Once a batch has been created, you can execute one of the many
batch functions (download, move, type etc.) and all of the files
in the batch will be downloaded, moved etc. You can also create
a batch by using wildcards or entering individual filenames.
You may do this at a prompt similar to this (prompts may be
different if SysOp has modified them).
You may download up to 50 files
Enter Filenames:
When you get a prompt similar to this, you have several options.
You can enter a filename, a wildcard or a number/range of numbers.
The numbers correspond to the ones shown to the left of the
filename in the file listing. Enter a range such as 10-15, and
files 10 through 15 will be tagged for a download. Other batch
operations operate in the same fashion. This batch oriented file
system gives Oblivion/2 the flexibility and power that both
SysOps and Users can appreciate.
(3) The menu hierarchy - The default menu setup that comes
with Oblivion/2 has been divided for an ease of use for
the SysOp and user. In order to keep things neat, and keep
related commands together, we have divided the menus into
two different types. The first type is known as a user menu,
and the second known as a Sponsor menu. The user menus contain
commands accessable to ordinary users, and the Sponsor menus
contain commands that are used to maintain said areas, and
should only be executed by those of high security levels.
I will illustrate a few menus and associated Sponsor menus
so that you can better understand the reason for dividing
them. The file menu contains commands like "Newsan Files"
"Upload Files" "Download Files" "Get Information on Files" etc.
The file Sponsor menu contains commands such as "Reorder File
Bases" "Offline Cleanup" "Make File Areas" etc. As you can see
the sponsor menu contains functions that are available to SysOp.
(4) Creating the NEWS message base - SysOps can use NEWS to
convey important information to their users. Before you can
create this base, you need to know how to create a message area.
Section 14 of this document contains information on creating
message bases. Follow those instructions on the creation of
the base, but make sure that the option "Mandatory" is set to
ON. This will force the BBS to newscan the message base upon the
user's login. When you post a new message in this base, all
people with access will see the new message. You can create
more than one news base, and give each of them different ACS.
Users will have to have the specified ACS to view the new
news messages.
SECTION 2: ACS SYSTEM
─────────────────────
ACS, or Access Conditioning System, has become a reality
for many BBS programs being produced today. With ACS you can
allow and restrict user's access to a certain area to the
board based not only on level but on Baud Rate, Time Left,
Number of File Points and much more. In essence, ACS
offers the SysOp "Total Control" of his system.
Before any SysOp can use the ACS System, it must be known
it can get very complicated (as you will see). It can become
a programming language in itself. So if your access doesn't
go as planned the first time, continue to experiment until
you find the results you are looking for.
The following is a list of valid ACS Commands:
Flag Description
─────────────────────────────────────────────────────────────
- False
+ True
SXXXX True if Level Greater or equal to X.
VX True if user is on Node X.
DXXXX True if File Level Greater or equal to
XXXX.
EX True if user called more than X times
today.
BXXX True if BPS Rate (w/o 00's) is Greater
or equal to XXX. (ie:3, 12, 24, 48,
96, 144, 168, 192, 384)
CXXX True if user hasn't changed his password
in xxx days.
FX True if X flag is set. (A-Z)
HX True if user is using menu set X.
IX True if user is using stat set X.
JX True if user has ANSI and X=0, or
user has AVATAR and X=1, or if user
has RIP and X=2.
OX True if flag X is set in the second
group of ACS Flags. (A-Z)
See *** Note following commands.
PXX True if user has XX file points.
YXXX True if it is at least XXX minutes
past midnight.
()'s Tells Obv/2 to Process Codes in
parenthesis before any other codes.
| Used to "Or" what is on the left
side of the | with what is on the
right side of the |.
~ Makes a Code False that would
otherwise be true and vice versa.
\ True if Fail Flag is True.
= True if user is local.
[ True only when system is run
multinode.
; True if input is not broken using
space or ESC.
' Used to prompt for SysOp password.
KX True if absolute file area # is equal
to value of X.
LX True if absolute message area # is
equal to value of X.
MX True if MSG conference is equal
to the value of X.
NX True of FILE conference is equal
to the value of X.
PXXXX True if # of file points is greater
than the value of XXXX.
TXXXX True if time left is greater than
the value of X.
UXXXX True if the user # is equal to X.
AXX True of age is greater than XX.
GX True if user is male (X must be
0), or user is female (X must be 1)
QX True after user has called more than X
times
RX True if total calls exceed X.
* True if user meets his Post/Call
Ratio
Xyyy True of the first three #s of the
user's phone number match. ie:
A216 holds true for all users
who's area code is 216. A216464 holds
true for all users who's number is in
area code 216 and prefix 464.
Zx True if Day of the Week = X
0=Sunday...6=Saturday
_ True if user is available for
Multinode Chat
$xx True if the user has changed his
password in xx days. ie: $10 is
true if the user changed his
password more than 10 days ago.
] True if screen pausing is on
The Following are a few examples of the ACS System:
~U2 - Creates a base that can be accessed
by everyone EXCEPT User #2.
S20D20 - Creates a base that anyone can
access as long as their main/file
levels are greater/equal to 20.
Y120 - Creates a Base that will open after
2:00 am and close at 11:59 pm.
y60~y120 - Creates a base that will be open
from 1am to 2am.
=S255 - Creates a base that can only be
accessed via the local terminal, AND
the user online must have a security
level of 255.
P100|S50 - Creates an option that can be
accessed only
if the user has 100 or more file
points, OR if the user has a
security level of 50 or greater.
T90|FABC - Creates an option that can only be
used if the user has 90+ minutes of
time, OR if he has flags A,B,C set.
B144|FA - Creates an option that can be
accessed only by someone who has a
14.4k or better modem, OR if the
user has flag A set.
A18G0 - True if the user is male, and 18 or
over.
A18G1 - True if the user is female, and is
18 or over.
s20d20~U2|(U2Y60~Y120) - Creates a base that will allow
anyone except user #2 who has both a
Main Level and Transfer Level
Greater than or equal to 20 OR Allow
User #2 to access this base from 1am
to 2am.
*** There are 2 separate sets of ACS flags. Use the Fx ACS
Command to access the first set of ACS Flags, and use the Ox
ACS flag to access the second set of ACS Flags. Both sets of
flags can be toggled on and off in two ways. First, both
sets of ACS flags can be toggled on/off with the user editor.
The second way to toggle these flags on/off is by use of the
following menu commands.
To adjust flags in set 1:
Command Key: -S
Function : Toggles on/off flag in CString
CString : +x (turns on flag x) or -x (turns off flag x)
To adjust flags in set 2:
Command Key: -Y
Function : Toggles on/off flag in CString
CString : +x (turns on flag x) or -x (turns off flag x)
SECTION 3: CONFIGURATION PROGRAM
────────────────────────────────
In version 2.0 and later, the configuration program is
now an active part of the BBS. No longer do you have to exit
the BBS, and run a large, clunky config, but you can do all
of your configuration needs online.
The configuration program has a number of global
commands. To Clear a field, use the CTRL-Y command, to
advance to the next option, use either your arrow keys, or
your ENTER key. To enter into insert mode, or to exit
from it, use the CTRL-V option. To end configuration from a
certain menu, use CTRL-Z (Unless otherwise told).
Each Section of the configuration program covers a
different aspect of the BBS. Use your arrow keys to navigate
throughout the config.
In the next part of this section, certain commands in
the configuration program will be explained in detail.
Commands that are obvious, will be skipped.
System Information:
Multinode Operation - If you plan to run your system with
multiple nodes, select yes for this
option.
Node Number - This is the node number for the
current node. Leave this at 1 if you
do not plan on running more than
one node.
Mins to Time Out - This value (in minutes) will tell the
BBS when to hang up if there has been
no keypresses from the remote side.
Days to save log - This number (in days) tells the BBS
how long to save the system log. The
log will automatically be purged after
that number of days. This is primarily
a security feature.
Lines of Scrollback - This number tells the BBS how many
lines of text to save in the
scrollback buffer. This buffer can be
accessed via the F4 SysOp command, and
is used to view any text/ansi that
scrolled off the screen. The higher
you make this number, the more memory
you'll need. If you make the number
too high, your system will crash with
an ERROR 203. Should this happen,
lower this number!
Page Times - This number tells the BBS how many
times to allow the user to page the
SysOp. If he pages more than this
amount of times, a textfile,
ENOUGH.ANS, will be printed.
QWKName - (Max 8 letters, no extension) This is
the filename
that your BBS will generate when a
user creates a QWK packet for
download. ie: OBV2 would make a packet
called OBV2.QWK.
BIOS Writes - If this option is Yes, then screen
writes will be handled through the
BIOS. This is very slow, but may
sometimes be needed if you have
multitasking problems. For normal
operations, change this to No.
Use MAINTAIN.BAT - Read the section on the upload checker
for information on this batch file.
Starting Menu - After the BBS finishes with the
MATRIX.MNU file (your matrix), which
menu should it then go to. This option
tells Obv/2. Do not include a .MNU
extension; That is assumed.
Use Status Bar - If you wish to use the status bar,
turn this option on. If not, keep it
off. The status bar is located on line
25 of your local screen. It gives
important user info on the current
user. There are three different parts
to the bar. Toggle all of these by
using ALT-B. You can also turn off
your status bar at anytime by using
ALT-B.
System Information 2
Data Library Ansis - Tells the BBS if the ansis for data
areas are in the current status screen
library, or if they're in the textfile
directory. Yes = Ansis in status
library, and No = Ansis are in
textfile directory. Note: If you enter
yes for this field, and the ansis are
not there, the BBS will then look in
the textfile directory.
Scan all areas - When this option is set to yes, then
the BBS will check all file areas for
duplicates when globally uploading
files. This method is slower, but
there's no possibility of having the
same file in 2 directories. If the
option is set to no, then the current
area will only be scanned for
duplicates.
Use upload checker - If you want your uploads CRC tested,
age checked, and virus scanned, turn
this option on. Read the section on
the upload checker for more
information on the upload checker.
SCAN Command - This is the commandline of the virus
scanner that the upload checker will
use. IE: SCAN /A /NOMEM /NOPAUSE for
SCAN.EXE from McAfee.
Comment File - This is the filename of the comment
that the upload checker will add to
your checked files. Make sure that the
file is in your textfile. If you
don't want comments added, leave it
blank.
File to add - This is the filename of the file that
the BBS will add to checked files.
Again leave it blank if you don't want
a file added.
Age for files - If the newst file in an archive is
older than this date, then the file
will fail the upload checker.
Delete List - This filename (in your textfile
directory) contains files that the
upload checker will delete from
uploaded archives. Put one filename
per line.
Special Login - This option is used to allow the SysOp
to completely configure the login.
If this option is set to no, the BBS
will NOT display welcome files, check
the notices, display status screens,
check for new email etc.. (Everything
the BBS does on a regular login).
Instead, the BBS will just go to your
starting menu as set in the CONFIG.
(This defaults to TOP.MNU). If you
want to alter any aspect of the login,
or make a login that looks like
another software's then this is the
option you'll want to use. If you want
to duplicate Oblivion/2's login to
modify later, here are the commands
that should be present in the
beginning of your TOP.MNU file (or
whatever menu you have configured as
the 'startup menu' in the CONFIG)
Command Key : -+
Function : Displays random WELCOME.x file
Command Key : -N
CString : STATUS.ANS
Function : Displays STATUS.ANS (Login status screen)
Command Key : -(
Function : Prompts the user to hit return
Command Key : -@
Function : Reads System notices
Command Key : &]
ACS : [
Function : Sets user as not available for multinode
chat
Command Key : &A
ACS : [&
Function : Asks user whether he wants to be available
for multinode chat
Command Key : EN
Function : Scans for new E-MAIL
Command Key : -|
Function : Checks for incomplete infoforms
Command Key : MZ
Function : Scans for new system news
Command Key : VC
Function : Checks for unanswered voting questions
Command Key : -_
Function : Pages SysOp is user has wanted flag set
Allow G and I - Allow use of the G and I commands
from the message reading menu. These
commands store replies and threads.
In low memory situations, these
commands can lock the system.
Drop carrier after - Toggle this option to YES if you want
the BBS to drop carrier on users when
they logoff. If you do NOT want the BBS
to drop carrier on users after they
logoff (if you're running Obv/2 as a
door), set this option to NO.
MAINTAIN.BAT door file-If on, the BBS will create a DORINFO1.DEF
type of door file in the door directory
before the BBS executes MAINTAIN.BAT. If
your file maintainence program requires a
door file to run, turn this option on.
System Information 3:
Swap to EMS - Toggle this option to YES if you want
the BBS to swap to EMS memory instead
of XMS or disk.
Swap to XMS - Toggle this option to YES if you want
the BBS to swap to XMS memory instead
of EMS or disk.
Open/Close FDF - Tells tells the BBS whether to open
and close the file description file
while doing file listings. This option
slows down file listings, and should
only be used on multinode systems if you
experience problems.
Use Timeslices - If you are running a multitasking
operating system such as IBM OS/2,
Microsoft Windows 95, or DOS based
equivelants like Windows 3.11, and
Quarterdeck DESQView, turn this
option on, and Obv/2 will release
CPU timeslices back to the operating
system. This helps to speed the overall
speed of both foreground and background
tasks by making sure that the CPU isn't
always processing instructions from one
single task.
Look and Feel:
Top Ten Character - This ASCII character is the one the
BBS will use in the top ten bar graph.
Commonly used ones are (ALT-255), or
■ (ALT-254).
Use Greater than - If yes, the BBS will put a > sign
before quoted text.
Use Quote Headers - If you want to use quote headers, turn
this option on. Quote headers are
strings displayed in the message at
the beginning and end of a user's
quoted message. They tell when the
person started, and stopped quoting.
Common phrases: User Opened his mouth
(start), and User Shut his mouth
(end).
Use Message Help - Toggle this option to yes if you want
to use an external screen (MESHELP.ANS)
for the message reading help. (? from
the message reading prompt)
Use file help - Toggle this option to yes if you want
to use an external screen (FILEHELP.ANS)
for the file listing help. (? from the
file listing prompt)
Communications:
Manual Answer - When this command is set to yes,
Oblivion/2 monitors the carrier pin on
your serial card. When this pin
signals true (when the phone rings),
the BBS sends the answer string. This
method is quicker than waiting for the
"RING" message from the modem. It
doesn't work with all modems, so
experiment.
Initialization String- This string is sent to the modem after
every call, and when first loading up
the BBS. Use | as return, and ~, or
comma, for pauses. Use "+++" to put
the modem into command mode.
Hangup String - This string is sent to the modem when
you want it to hang up the phone. Use
the same symbols as above.
Send Carrier Str. - This string is sent when you want to
send carrier to another user. (ie:
User is in his term program, and you
want to switch form a voice call to a
data call. User receives carrier
(ATX1D), and you send carrier (ATA))
Receive Carrier Str. - Same as above, except this will
receive carrier. This is typically
ATX1D.
Lockout Password - This password is required for a user
to login when his baud rate is under
the minimum baud rate.
Wait Until Sent - If this option is true, the BBS will
pause until the output buffer is
empty after a file transfer. This
may help to alleviate problems with
the higher speed modems. (28.8k)
115.2k Locking - If you want to lock your comport
at 115,200 baud, set this option
to yes. It will ignore the port
lock rate, and lock at 115,200.
SysOps with 28.8k modems should
set this to yes for maximum performance
from their modems.
ACS Configuration:
Post Anonymous ACS - ACS required to post anonymously in
any base. (See the section on ACS for
codes)
SysOp ACS - ACS required to be a full SysOp. When
you have this ACS you'll be able to
access all SysOp commands. (Unless
otherwise changed by the menu editing)
Message SysOp ACS - ACS required to have access to the
message sponsor commands. (Again, this
can be overriden by menu editing)
File SysOp ACS - Same as above, except for file system.
Exec in MiniDOS ACS - ACS required to use the *COMMAND, or
&COMMAND commands in MiniDOS. *COMMAND
will execute COMMAND after performing
a DOS shell. Use this to run PKZIP
etc.. &COMMAND will execute command
w/o a DOS shell. Use this to run any
commands that are internal to
COMMAND.COM. (ie: DEL, ERASE, COPY)
//\\COMMAND ACS - //\\COMMAND is a quick way to execute
any command from anywhere. You must
have the specified ACS. To use
//\\COMMAND, type //\\ followed by the
corresponding menu command. For
example, the menu command for text
editor is *T. If you've got //\\
ACS, you'd type //\\*T. This would be
the same as executing the text editor
from the SysOp menu, but you can do it
from anywhere! Use this access with
extreme caution. Anyone with this access
can execute ANY command regardless of it
being in your menus or not. If it's a valid
menu command, the user will be able to
execute it if he meets the ACS requirement.
Post Mandatory ACS - ACS required to post a message in a
mandatory (NEWS) message base.
Mandatory message bases are
automatically newscanned upon logon to
the system. Use them to post news
bulletins. Be sure to purge them
periodically, as they will get
numerous.
Topten exempt ACS - ACS for users to be exempt from the
top ten listing.
Certified Mail ACS - ACS required for a user to send
certified mail. Cerified mail is a
type of Email that sends the sender a
notice when the receiver has read the
mail.
Filemail ACS - ACS required to attach files to email.
//\\xx ACS - The remaining options on this screen,
and ones similar to that in ACS
configuration II are used to limit your
CoSysOp's use of the //\\ ACS. Each option
is as follows '//\\*? ACS' This is the ACS
for any //\\ command followed by a *?. For
example, //\\*T is the command used to
activate the text editor. If you don't
want your CoSysOp accessing any of the *x
functions, but wish to let him have access
to other menu commands not in your menus,
set the ACS higher. (Read explanation of
//\\ACS just above)
File Section Config:
K per point - This is used to establish a file point
ratio. How many K is one point worth?
External Area Listing- If you have made an external file area
listing, using either the straight
ANSI method, or the repeat method, set
this option to Yes.
Repeat Method - If you made your area listing using
the Repeat Method select yes. (Read
the section on making external screens
for instruction on making repeat
method screens.)
Filepoint Commission - If this option is toggled to yes, a
commission system for filepoints will
be used. The commission system grants
the uploader a percentage credit (in
FP's), when someone downloads his
file. This encourages good uploads. If
nobody downloads the file, then the
uploader doesn't get credits.
Percentage Commission- Percent of the total filepoints to
give the uploader when someone
downloads his file. Example:
Points per 10K = 1
Percentage Commission = 100%
User downloads a 100K file, and the
uploader will get 10 points added on
to his account.
Times Point Back - When you rate a file, the uploader
will get that rating multiplied by
this number. (ie: if this was 2, and
you rated a file at 5 pts, the user
gets 10 pts added to his account)
Description form 1-8 - This feature allows you to append
certain options to your file listing.
You can let users know who uploaded
the file, the date of upload, the size
compressed, the size uncompressed etc.
(see the MCI code section for those codes)
If you wish to use these options, simply
start at line 1, and add whichever options
you want your users to see in the file
listing. (Suggested that you use Uploaded
by, and the date of upload)
Lines of extended - Tells the BBS how many lines of extended
description description to use. Maximum is 7. This
option has nothing to do with FILE_ID.DIZ
which will use more than 7 lines of it
is infact longer than 7 lines.
Percent Time back - How much time back (in %) should the
user get back after his upload.
Autovalidate files - If yes, files will automatically be
validated after upload. Otherwise,
they will be marked as NEW, and
must be manually validated.
Min K for upload - (in Kbytes) When your HD his this
amount of space, or less, uploads will
not be accepted.
Use Average CPS - If this option is set to true, time
estimates for transfers will be made
on the average CPS rate of that user.
If it's set to no, time estimates will
be made based upon the connect rate.
Extraction Percent - When the user extracts a file, he is
charged the file size multiplied by
the percentage in this field. For example,
if the user extracts a 100K file, and this
value is set to 60%, then the user is
charged 60K for the extraction. If file
points are used, the extraction percentage
is multiplied by 1/total # of filepoints
to determine how many credits to remove.
Email Config:
Allow Filemail - When this option is set to yes, users
will be allowed to send files to each
other through Email.
Days to keep filemail- Filemail will be kept for this amount
of days. It will then be auto-purged.
Message Section:
External Base List - Use an external base listing in the
message section? (See section on
making an external listings in these
docs)
Repeat Method - If you made your base listing using
the repeat method, select yes.
Val User/NUV Settings:
Default Flags - When a user is validated, he will
receive these access flags.
Daily Flag Change - Flag changed on first call of each
day. (Format: +FLAGS -FLAGS)
(ie: +ABC-XYZ - Adds ABC, turns off
XYZ)
Call Flag Change - Flag changed on every call.
(Format: +FLAGS -FLAGS)
(ie: +ABC-XYZ - Adds ABC, turns off
XYZ)
SECTION 4: MENUCODE/STATCODE/MAKEPROM/MAKEHELP
──────────────────────────────────────────────
MENUCODE:
Before your users can choose from multiple sets of menus,
you must first code your ansi/ascii menu files into a single
library file. To do this, you will need the enclosed utility
MENUCODE.EXE. The commandline for the code utility is as
follows.
MENUCODE <.LIB Name>
Note: You might want to do this in a separate dir. Also, if a
file is missing the program will inform you.
You may be thinking to yourself, What do I name the
files? The answer is simple. With versions greater than 2.0,
the SysOp decides which menu(s) will be in each library file.
Do this by entering an up to 8 letter filename (no extension)
in the HELP ID field in the menu editor. (Once you've begun
to edit any menu, HELP ID is on the menu editor change
screen.) If you do not want an ansi menu coded for a specific
MNU file that you have, leave the HELP ID blank.
After all files are successfully coded, copy the *.LIB,
and *.NDX files to your data directory. Proceed to login to
the BBS, and enter the main SysOp menu. When you've reached
that, option "N" will allow you to edit your status screens
or menus. Since you'll be adding menus, select M.
Option "A" will add a menu set for users to choose from.
Select this, and fill out the questions. If you do not wish
to use Library set menus, use the Obv/2 TEXTFILE directory as
the LIB filename.
Example:
Menu Name : Normal Menus
Library File: C:\OBV2\TEXTFILE\
If you take this approach, no LIB/NDX files are necessary.
STATCODE:
With the ability to code multiple menu sets, the idea of
being able to do the same with status screens was invented.
We call these 'Status Screen Libraries. Using a small
utility, called STATCODE, you will be able to code multiple
statistic screen sets for your users to choose from.
The status library consists of a few configurable ANSI
screens, they are as follows:
NEWSHEAD.ANS - The News Header
EMAILHDR.ANS - Header for E-mail
HDR.ANS - The Header
HEADER.ANS - Message Header
ZIPHEAD.ANS - Internal ZIP Viewer Header (Optional)
FSEHEAD.ANS - Header for fullscreen editor
BCHANGE.ANS - Base Change Header
SUBSSRT.ANS - Sub Listing Start ANSI (Optional)
SUBSMID.ANS - Sub Listing Repeat ANSI (Optional)
SUBSEND.ANS - Sub Listing End ANSI (Optional)
AREASRT.ANS - File Area Listing Start ANSI (Optional)
AREAMID.ANS - File Area Listing Repeat ANSI (Optional)
AREAEND.ANS - File Area Listing End ANSI (Optional)
USERSRT.ANS - User Listing Start ANSI (Optional)
USERMID.ANS - User Listing Repeat ANSI (Optional)
USEREND.ANS - User Listing End ANSI (Optional)
STATUS.ANS - Login Status Screen
USERSTAT.ANS - Your Stat ANSI
FILESTAT.ANS - File Status
FCONFIGS.ANS - File Listing Configuration Screen
CONFSCR.ANS - Config Screen
QWKDN.ANS - QWK Screen (For creating/downloading QWK)
QWKUP.ANS - QWK Screen (For REP upload/message posting)
It is now possible to code any screen that you want into
the status library. With the invention of the -N menu command
(see the menu editor documentation), you may now display
status screens anywhere in the BBS. To code additional
screens, create a textfile called *.LST. (ie: If you code
OBV.LIB, you'll create and OBV.LST) In this textfile, each
line should have a valid DOS filename without any path
information. When you run STATCODE, make sure to have this
textfile in the main BBS directory.
You can also code the data area ansis into your status
screen libraries. Simply toggle that option on in the CONFIG,
and place any ansis that have to do with data areas in the
temp directory that you're using, and run STATCODE. (See the
section on the data areas on these ansi files)
As you can see, there are quite a few files that you can
include in your status screen library. You'll also notice
that some of the screens were optional. Those do NOT have to
be included in your library, but can be.
To Code a Status Library:
1. Create a temporary directory, copy ALL files to this
directory.
2. Make sure to have your .LST file in the main directory.
3. Run STATCODE.EXE with this format: STATCODE <libname>
<directory>
ie: STATCODE PMD C:\TEMP\ (No extension on libname!)
4. Add the status set with the "N" SysOp command.
5. If you coded any of the 3 part listing screens (ie:
SUBXXXX.ANS, USERXXXX.ANS, or AREAXXXX.ANS) you must
toggle their use in the CONFIG. (See the chapter on the
configuration program on just where to find these
options.)
6. If you coded the data area ansis, make sure that the
corresponding option is turned on in the CONFIG.
MAKEPROM:
With the new-and-improved string system in version 2.00
and greater, there is no more need for a string compiler.
Instead, we've written a new utility called MAKEPROM which
will add/arrange any new strings. No textfiles, no compilers,
nothing but a simple executable file.
This utility will add any new strings to the data file,
and will arrange them in their specific order. Do not run
this program more than on time per new version. The program
will inform you which prompts it can convert, and all you
need to do is run it once to update your PROMPTS.DAT.
MAKEHELP:
With the new configuration system in version 2.0 and
greater, we've created a help system. This system will give
the SysOp a brief description of each option. Whenever new
options are added to the config, new descriptions must be
added to the data file. MAKEHELP will update your help file.
Run this only once per new version, just like MAKEPROM.
SECTION 5: DATA AREA CONFIGURATION
──────────────────────────────────
The data area is a new outlook on an old idea. This data
area system draws on the old database system found in some
BBS softwares. This system takes the good features of the
database, and combines them with the configurability of
Oblivion/2.
Data areas can be used for a few very practical
applications. We've already utilized these areas in making a
BBS list, Rumors, and One Liners. All of these are completely
SysOp configurable, and can be altered in any way the SysOp
chooses.
To show the configurability of the data areas, I will
demonstrate making a BBS listing, along with explaining how
these data areas work.
When you first enter the data area sysop menu, you'll be
presented with a few self-explanatory options. (Add, delete,
change, quit.) Since we're just starting out, we'll select
add. You'll be presented with the following screen:
(A) Area Name : BBS List
(B) Access ACS :
(C) Add ACS :
(D) List Prefix : BBS
(E) Add Ansi : ADDBBS.ANS
(F) Sponsor : Lord Tracer
(G) Allow Anonymous: No
(H) Store Message : Yes
(I) Data File Name : BBSLIST
(J) Show Ansi : SHOWBBS.ANS
(K) AutoDelete : 0
(L) Directory :
(M) Node Number :
Area name - Name of the data area. In our case, this
will be BBS list.
Access ACS - ACS required to access this data area.
Add ACS - ACS required to add an option. In this
case, it would be adding your BBS entry.
List Prefix - This prefix (up to 5 letters) tells the
BBS the name of the 3-part listing file
to use. Using BBS, the 3 ansis you'd
need to make would be BBSSRT.ANS,
BBSMID.ANS, and BBSEND.ANS. (See the
section on making 3 part repeat ansis
for help with this)
Add Ansi - The ANSI that appears when the user
wants to add to the database. In this
case, this ansi could be a box with BBS
name, number etc. Each of these options
requires an MCI code. Worry about that
later. (If you use %xx as your MCI codes
instead of |xx, the BBS will force input.)
Sponsor - The user that can edit the database. If
you want to give specific users their
own database, you do not need to give
them SysOp access to edit their
database.
Allow Anonymous - Can the user add to this database
anonymously? If so, set this to yes.
Store Message - Can this database store an ANSI file or
description for each entry? If so,
change this to yes. In our case, we
wish to allow the SysOp to upload his
BBS ad, or write a description.
Data filename - This is the filename the BBS uses to
store information about this database.
Do not include an extension.
Show Ansi - This ansi is displayed when the user
views one of the data listings. In this
example, you'd want to give a lot of
information in the Show Ansi. Stuff that
you didn't put in the listing ansi.
Again, you'll use MCI codes for this
ansi, worry about what codes to use
later.
Autodelete - This number is the maximum number of
entries in one database. Entries will be
auto-purged to stay below this number.
Directory - Like message bases, data areas can also
be echoed with Obv/2's DATAMAIL.EXE
utility. This directory stores the *.MSG
files that contain the information to
network for the current data area.
Node Number - Enter the node number assigned to you by
your network admin. Make sure to enter
the node number of the net that supports
networked data areas. (IE: If you're in
ImpactNet, and you want to net BBS lists
with the ImpactNet SysOps, don't put
your Cybercrime node number)
After you've completed the configuration of the data
area, press q to quit. The BBS will ask you "Edit Options?"
Select yes. In this section, there are 3 options:
Name : BBS Name
String Length : 40
MCI Code : BN
Enter every piece of information that you want to prompt
the user. (You should use all of these MCI codes in your add
ansi. Use the important ones in your listing ansi, and
finally, all of them in your show Ansi. See the example BBS
list provided with the BBS.)
Taking a look at the above example, the name of the
field is BBS name, you can enter up to 40 characters for this
field, and the MCI code for your ansis is |BN. Notice that
you do NOT put the | in the editor! Just BN!
The data areas require a little work to create, but when
you put in the effort, and understand how it works, the
results are pleasing.
With v2.20 and later, you can network your data areas.
This is done just like networking a message base. You'll need
an import/export directory, and a node number. The
import/export directory stores the message files, and the
node number tells the tosser which network it's tossing.
You can only run DATAMAIL.EXE in a network that supports
the networked data areas. Once you've found a network that
does this, you'll just use your node #, and then a dir on
your HD. Set this up JUST like a message base. Go into your
tosser program, and add this area into the listing. You'll
be given more information by your network admin. on exactly
how to set it up.
SECTION 6: CONFERENCE EDITOR
────────────────────────────
With the conferencing system, there can be up to 255
separated message and file conferences. Also with the system
comes many security features to prevent unwanted users in
your conferences.
The Conference Manager is located in the main SysOp menu.
Upon entering, you will be asked whether you wish to edit a
message or a file conference. Select the appropriate option.
You will be taken to the main menu of the manager. It looks a
bit like this:
Add Conference Edit Conference
Delete Conference Change Type
Users w/Access Reorder
List Quit
Add/Edit/Delete/List - These are quite self-
explanatory.
Reorder - Will allow you to change the
order of your conferences.
(ie: Making Conference 2 into
Conference 1)
Users with Access - This command will display a
listing of all users that have
access to the conference.
When you wish to add/edit a conference, you are presented
with the following:
Description : Oblivion/2 Support
ACS : S25
Conference ID : 1
Password :
Description - This is the name of the current
conference.
ACS - This is the ACS required to enter the
conference.
Password - This is the password required to enter
the conference.
Conference ID - This number is used internally by
Oblivion/2 to tell the BBS which
conference is which. You must use this
number when working with the JT, and JF
menu commands. It's also used in the
sub/file area listing when you don't
use repeat method screens.
SECTION 7: SYSOP ONLINE FUNCTIONS
─────────────────────────────────
Oblivion/2 v2.0 was designed specifically with the SysOp
in mind. There are a few global SysOp commands that can be
accessed via the local terminal. You can also get a listing
of these keys by pressing ALT-H from within the program.
F1 - Bring User Into Chat mode (Split-Screen)
F2 - Bring User Into Chat mode (One line)
F3 - User Editor
F4 - Scrollback Buffer
F5 - Screen Image
F6 - Toggles on/off logging of text typed in the chat
F9 - Input Lockout (Locks incoming data from modem)
F10 - Output Lockout (Locks BBS output to modem)
ALT-A - Toggle chat availability
ALT-B - Toggle Status Bar (on/off)
ALT-N - Nuke User (Hangs up)
ALT-M - Access to all message bases
ALT-O - Toggle Input timeout
ALT-X - Access to all file areas
ALT-T - Temporary SysOp access
ALT-J - SysOp Shell to DOS
ALT-V - Validate user
ALT-Q - Displays KICKOFF.ANS in textfile directory, and
drops carrier on user
Commandline parameters for OBV.EXE:
-B xxxxx : Pass xxxxx baud rate to OBV.EXE
-E : Forced event run
-A : Return to DOS after user hangs up
-D : BBS doesn't check for work/swap directories
-L : Local Login (Logs in as SysOp from DOS prompt)
-N x : Load up node x
-EMS : Loads OVR (Overlay) into EMS memory
-MENU : Loads menu editor from DOS
-USER : Loads user editor from DOS
-PROMPTS : Loads string editor from DOS
-CONFIG : Loads CONFIG program from DOS
-T xxxx : xxxx = time in minutes after midnight before which
users should be kicked off. (ie: -T 120 means that
users will be kicked off until 2:00am)
-M xxxx : xxxx = number of minutes until the next event
before which users should be kicked off. (ie: -M 120
and an event of 7:00pm would mean that users cannot
access the BBS from the hours of 5:00pm until 7:00pm)
-D : Overrides the current swap directory setting. (In
case you made a mistake in entering the directory,
this command will allow you to enter the BBS and
change the bad swap directory name.)
EVENT EDITOR
────────────
One of the many great features of Oblivion/2 is its
powerful event editing system. With the internal event
editor, you're able to perform most any daily maintainence
you wish, toggle SysOp availability, and much more. There are
four basic types of events. They are:
Errorlevel - BBS exits at a certain errorlevel to run batch
files.
Code - Executes one or more menu commands with full
CString support.
Availability- Toggles on/off SysOp availability.
User ACS - Allows you to define ACS required to login to
the BBS at certain times.
Errorlevel events are ones in which the BBS will exit at
an errorlevel of your choice, and run a batch file, or other
program of your choice. To make the BBS run a batch file, you
need to add statements to your batch file that runs the BBS.
They will look similar to this:
If errorlevel xx then runme.bat (Use batch knowledge)
Define your errorlevel, and replace xx with that level.
Assign a time for this event, and away it goes.
This is an example of a batch file that runs the BBS, and
can be used in an errorlevel event.
@ECHO OFF
if errorlevel 100 then speedisk
if errorlevel 255 then exit
:BBS
OBV.EXE
:SPEEDISK
cd\norton
SPEEDISK.EXE /BATCH C:
cd\obv2
goto obv
:exit
exit
As you can see, the errorlevel event is Norton Utilities
Speedisk. The batch file was written to run speedisk when
the BBS exits with errorlevel 100. It then re-loads the BBS
when the program is done executing. Use this as a basis for
other events you may wish to add in.
Code events are probably the most useful. They allow you
to perform certain menu commands with full CString support at
any hour of the day. The uses for this are endless. One
example is packing the Email. This should be done often to
keep the Email system quick. To do this, add a 'Code' event
that runs the Command Keys "EZ". Assign a time for it, and
away it goes.
SysOp availability is toggled through the event editor.
You can toggle when the SysOp is in/out by using this event
type. Select Availability event, and toggle whether it is to
be when the SysOp is available or not. Assign a time, and
thats it.
The final event type is User ACS. This event type is
used to restrict BBS logins to certain ACS requirements. For
example, you can make it so that only user 20 can log into
the system at 5:00am to 6:00am. Add a User ACS event, and
make the ACS "U20" (No "" marks). Add 5:00 am as the start
time, and 6:00 am for the end time. Simple as that.
The commandline switch -E is used to execute your events
if you're running FD. When running any type of mailer,
chances are that the BBS will miss its events. If the time
has already passed (Say you've got an event scheduled to pack
the message bases at 2:00am), Obv/2 will run that 2:00am
event. (Only if its past 2:00am)
DELETED LIST
────────────
The deleted list is like an improved blacklist. It gives
you much more control over who gets on the system, and who
stays off, and for how long. Here's how it works.
When you want to delete someone, he can optionally be
tossed into this deleted list. When inside of the list, there
are 3 types of deletions:
Immediate: File displayed to user, Then he's off the
blacklist, and can re-apply.
Expiration: File displayed to user until date specified.
After date specified, user is off deleted
list.
Never: File displayed to user. Permanantly on the
blacklist.
If you noticed above, each level of deletion displays a
file to the user. When you add a user, you can change the
blacklist file for each one. This lets you put 'personal'
messages to your blacklisted users. The default is
BLACKLST.ANS. If you want to change the filename, enter
a different one when the BBS prompts you for a filename.
STRING EDITOR
─────────────
With new versions of Oblivion/2, string editing has
become much easier. You no longer need to compile your
strings, the BBS will do it all for you.
This new version now has an online string editor. Some
features include: strings of up to 255 characters, being able
to use filenames in place of strings, and customized
variables for displaying BBS information in your strings.
Moving around in the editor is quite simple. Press [,]
to view 5 more strings. When you see a string that you wish
to edit, press that strings corresponding number. The BBS
will then allow you to edit that string on the lower half of
the screen. You may use CTRL-V to toggle insert mode, and use
CTRL-U as an ascii chart. (Use the cursor to pick the upper
ASCII character you want, and it will be printed in the
cursor's current position in your string).
Notice that when you see your strings, you'll see 2
lines for each string. The upper line is what the string
description is, and the lower line is what you've configured
that string to be.
You may use |Ux (1-6) for each of the six user colors.
You can also use |01-15 to force a certain color. |OT, and
|O2 are internal variable MCI codes that the BBS uses to
place information. If you see one of the prompts with a |OT,
or |O2, make sure that your string also has one.
Another approach to string editing is filenames. You can
have the BBS print a file instead of a string. This comes in
handy for places where you just need to put more information.
For example, you might want to configure your message reading
string, or file newscanning string to use a textfile. This is
a simple process. Create your ANSI, and place it into your
textfile directory. Use %%FILENAME.EXT for that string in
your editor. This will force the BBS to read that string from
the file. In this external file, you may use 3 percent codes:
%IN, %OT, and %O2. %IN tells the BBS where to place the
cursor after the screen has been drawn. Use this to place
user input anywhere you want. The input color will be the
same as the color that you use with %IN. Like above %OT, and
%O2 are information placers. Only use them if the original
string has them.
A new code has been added to let the string pause for a
return. This string is |PA. When you add this anywhere in
your string, you'll be paused until the user hits return.
You should run the Oblivion/2 Utility MAKEPROM.EXE when
you are instructed to by us. This updates your prompts
automatically. It saves a lot of time, and is better than the
old PROMPTS.TXT way of doing things. Make sure not to run the
program more than one time, as it could lead to damage of
your string file!
MENU PROMPT EDITOR
──────────────────
The menu prompt editor allows you to configure many
different prompts, and have your users choose which one they
like. These prompts can range from something simple like
this:
Main Menu:
to something more extravagant:
[10:06 pm EST]
[Main Menu] [?/Help]:
The operations of this editor are quite self-
explanatory. When making menu prompts, you'll be in the
Fullscreen editor. There are several MCI codes that you'll be
able to use in your prompts.
|01-|15 : ANSI colors from 01-15
|MN : Menu Name (Name in prompt in Menu editor)
|TL : Time Left
|TM : Time Now
|FLxx : Sets input length to xx
|RC : Regular Color
|SC : Status Color
|PC : Prompt Color
|EC : Input Color
|VC : Inverse Color
|XC : Box Color
|Ux : Moves up x amount of lines
|Dx : Moves down x amount of lines
|Fx : Moves forward x spaces
|Bx : Moves backward x spaces
|Xxx : Moves to absolute X value. ie: |X10 moves to the
10th row
|NN : Displays Node Number
SysOps may place %%filename.ext anywhere in the menu prompt
to display filename.ext from the prompts directory. Use the
%MN code to display the Menu's Name in Prompt (in filename.ext).
Set the Prompts directory in the CONFIG.
PROTOCOL EDITOR
───────────────
With version 2.xx of Oblivion/2, protocol editing has
been made much easier. All protocol setup is done internally.
When you first enter the protocol editor. You'll be
asked which type of protocols you want to edit. There's four
types of protocols: Single File, Batch, Resume, and
Bidirectional. Single File protocols (both upload and
download) are used in sending QWK Packets, Receiving REP
Packets, Receiving Filemail, Sending Memorized Messages,
Sending Complete File Lists, etc. Batch Protocols are the
heart of the file system. Resume Protocols are used to let a
user resume an uncompleted upload. (Only some protocols
support this, DSZ, MPT, HS-Link are a few examples)
Once you've selected which type of protocol you want to
edit, you'll be placed in an Oblivion/2 Box editor. The
options available from this screen are: Description, Key,
Program Name, and Commandline. Description is the description
you want to give the protocol. (ie: Zmodem Mobyturbo). Key is
the KEY that users must press to activate that protocol. (for
Zmodem, this could be Z). Program Name is the protocol
executable itself. (For Zmodem, DSZ.COM, or GSZ.EXE) Finally,
the commandline options are to be placed in the commandline
string. (See the DSZ documentation for the best string to
use)
PARAMETER EDITOR
────────────────
The parameter editor is a quick and easy way of
utilizing levels. What the editor does is allow you to define
a level (lets say 50), and let you give that level certain
PCR, UD, UD K, Time, DL K PER DAY ratios, and various
expiration values.
To use the editor, just create a level (say 50). Then,
enter in level 50's PCR, UD, UD K, TIME and DL K PER DAY
ratios/values. Now, when someone's given level 50 from the
user editor, they'll get these specified amounts.
You can now also specify a # of days til expiration, and
the level that the user will receive when his account expires
for each level in your parameter editor.
The unique feature of this Paramater editor is that it
can be totally invisible to the SysOp if he/she desires. In
your CONFIG, under 'Validated User Levels' there are a few
'Default XXXX level' entries. Should you wish to use the
parameter editor, change those values from whatever they may
be to zero. (Do this only for the Default UD, UD K, DL K per
day, Time etc. Do not change Average CPS to 0). When the
value is Zero, it tells Obv/2 to read from the parameter
editor values. Should you wish not to use this editor, change
the values to whatever you wish. The parameter editor will
have no function.
If you want to change a certain field for a certain
user, it's simple. Say you wanted to give Joe User 30 minutes
instead of 15 mins. (Say level 50 had 15 mins in it). You'd
then go to the user editor. Option 'time left' should be
changed to 30. Thats it.
Please note, in the user editor, DL K per DAY, Time, UD,
UD K, and PCR must all be zero. The parameter system will
only look at those values in the parameter editor if the
values for the above, in the user editor, are zero. There is
a function in the editor which allows you to Zero-Out certain
levels of users, so that they can follow the parameters. Also
note that the default CONFIG levels must also be zero for the
parameter editor to take effect. If they're not, the
parameter editor will not function correctly.
USER EDITOR
───────────
The user editor in 2.xx has been completely overhauled.
It's now completely batch oriented, and allows for many new
options. A few of these include Infoform Extraction,
Searching, Quick Loading of Users, Highlight Selected User
Editing and more.
When you first select the user edit option, you'll be
asked 'Edit Individual' If you pick yes, the BBS will prompt
you to enter a username. If you select no, the BBS will clear
screen, and print 23 user names, and let you select them with
a highlight bar. Hit "Q" to quit that process, or RETURN to
select the highlighted user.
Once inside the editor, you'll find a myriad of
configurable options. Note a few important keys: [,] move to
the previous/next user. {,} move to the previous/next user in
your search link. * extracts the selected Infoform to a file.
Finally, S takes you into the Search Editor. It looks like
this:
(H) Handle String : [OFF]
(A) ACS : [OFF]
(L) Level : [OFF] - [OFF]
(F) File Level : [OFF] - [OFF]
(D) Days Since 1st : [OFF] - [OFF]
(S) Days Since Last: [OFF] - [OFF]
(E) Flag : [OFF]
(N) Number of Calls: [OFF] - [OFF]
(Y) Age : [OFF] - [OFF]
(G) Gender : [OFF]
(P) PCR : [OFF] - [OFF]
(U) % U/D Ratio : [OFF] - [OFF]
(K) % U/D K Ratio : [OFF] - [OFF]
(X) Expiration Date: [OFF] - [OFF]
(T) Tabulate Search
This unique editor allow you to have the BBS search for
specific users, using your search criteria, and let you edit
all of them easily. This makes manual changes a breeze.
The options above are pretty self-explanatory. Make sure
to press "T" to 'Tabulate Search' If you don't, your search
won't run, and you'll lose your search criteria.
When in the user editor, use the {,} keys for quick
backward/forward progress in your search editing.
SECTION 8: INFOFORMS
────────────────────
Infoforms are a sysop's easy way of keeping information
about his users. Usually, when you login to a BBS, you'll be
asked to fill out forms. Sometimes forms are used as
applications to groups or whatnot. None the less, they are
very useful in storing information.
Making Ansi or Ascii infoforms is quite simple. For Ascii
infoforms create your ascii file with questions, and using
Qedit or any similar text editor use one of these following
characters depending on what you wish to do:
* -- Waits for a response. (Abortable)
|Xx -- Limits User input to xx spaces.
%xx -- Accepts up to xx characters, and will repeat
the question if the user leaves it blank.
@ -- Gets input similar to *. It will repeat the
the question if the user leaves it blank.
You have space for 5 information forms. After you've
created your ANSI/ASCII infoform, name it INFOFORM.1 through
INFOFORM.5. INFOFORM.5 is the form used by New User Voting.
If you want NUV, make sure to put the appropriate form in
INFOFORM.5.
You can force users to fill out certain infoforms by
making them mandatory in the CONFIG. Users must fill those
forms out in their login in order to gain access to the
system.
You can clear your infoforms by using the Clear Infoform
command from the SysOp menu. If you have altered your
infoform, it's a good idea to clear out your infoforms
because the answers could end up in the wrong spots.
New with version 2.20, you can now have multiple infoform
sets. Instead of letting users fill out only 5 forms, you can
have an unlimited amount of infoforms. The default 5 infoforms
are stored in a data file called INFOFORM . To have more than 5
forms, you can change the file that the infoforms are stored in.
The user editor, and the -) menu command allow you to change the
data file to another name. Each new data file stores 5 new infoforms
for each user.
SECTION 9: MAKING REPEAT ANSIs
──────────────────────────────
In an effort to add more configurability to Obv/2, we've
created the 'Repeat Method' of making ANSI screens. These
screens are used all around the BBS. Some areas include:
Message base/File Area Listings, One Liners, Rumors, User
Listing, Last Caller Listing, BBS Listing and more. It's
important that you learn how these work. Please read
carefully.
In the repeat method, there are 3 screens for each type of
listing. The first, an intro, the second is the actual way
to repeat, and the 3rd is an ending.
For example, to make a messge base listing that looked like
this:
Base Description Network
─────────────────────────────────────────────────────────────
1 General Talk ImpactNet
2 BBS Advertisements ImpactNet
─────────────────────────────────────────────────────────────
The 3 files used in message base listing are:
SUBSSRT.ANS - Intro to listing
SUBSMID.ANS - Middle (This uses MCI codes, and is the one
that will be repeated)
SUBSEND.ANS - The end of the listing.
Our SUBSTART.ANS would look like this:
Base Description Network
─────────────────────────────────────────────────────────────
Our SUBSMID.ANS would look like this:
|AN |BN |NN
Our SUBSEND.ANS would look like this:
─────────────────────────────────────────────────────────────
As you can see, the repeat ansi is one of the most powerful
features of Oblivion/2. Due to several bugs in TheDraw and
missing features in the ANSI.SYS device, you need to make a
few manual changes to the middle part before they will work
properly. (Middle part = xxxxxMID.ANS)
Load TheDraw and draw your ansi. When done, enter
animation mode using top rescan (others may work, but this is
standard). Place the appropiate MCI codes and save the ansi.
(If you are doing a plain non-animated ansi, save it as a
block. Note that this cannot be done with animated screens).
Exit TheDraw, and run ANSITRAN on it. ANSITRAN is a
utility supplied with the Oblivion/2 package, and is supposed
to clean the ANSI saved in TheDraw from unwanted escape
codes. Mostly it makes a good job of this, but since you are
going to edit your ANSI anyways, you might as well double-
check.
To do this, load your finished ANSI into QEdit or a
similar ASCII based text-editor. The strings ANSITRAN looks
for are esc[255D and esc[Aesc[B (the two codes together like
that or esc[Besc[A). If you see them, remove them.
The important part in making your repeat ANSI work, is
to replace any esc[yy;xxH codes with esc[;xxH. This is
because ANSI.SYS doesnt support going to XXth column in
current row, and thus TheDraw doesn't add that code in.
According to the ANSI 3.64-1979 standard esc[;xxH should go
to XXth column in first row, however Oblivion/2 interprets
the code differently in middle repeat ansis (and only middle
in the repeat ansis). Instead of going to XXth column in
first row, it will go to XXth column in current row, thus
making repeat ANSIs possible.
Having completed this, your repeat ansi is ready for
use. It may take a while to become familiar with the ANSI
codes, but after a while you learn them and this procedure
will be mere routine.
An example of a middle repeat ansi, created for the
oneliners follows below. This example repeat ansi would look
like this:
"█ Here goes your oneliners... Column 80 -> █"
This is how TheDraw saved the animated middle ansi I just
made:
[255D [0B [255D [0;1;30m█ [78C█ [2C [1A [0;32m|ON [0m
We remove the esc[255D's and notice the esc[0B. It moves
the cursor 0 chars down, so we can remove that too. The
esc[78C moves the cursor 78 spaces to the right, we could
also have done this using esc[;80H, thus moving the cursor to
a fixed position in column 80. This is quite useful in some
cases, and it makes it easier to recognize what is being
done. After editing, it now looks like this:
[0;1;30m█ [78C█ [2C [1A [0;32m|ON [0m
Here's what it does: esc[0;1;30m equals the three ansi
codes esc[0m, esc[1m, and esc[30m, color manipulations.
Stacking commands using semicolon is used very often, and can
be done as long as the last letter of the command (in this
case m) is the same. Next, it puts a █ at position one, moves
79 spaces to the right and dumps another one █, wordwrapping
onto the next line. Then it goes two more spaces to the
right, and one line up, fixing out location at column 3.
Cursor color is set to dark green. The MCI code will be
replaced by your oneliner when this is shown. At last, the
colors are reset so as not to interfere with your next ansi.
And this is already a working repeat ansi! If you'd rather
use the esc[;xxH code, it'd look like this:
[0;1;30m█ [;80H█ [;3H [2;32m|ON [0m
I prefer this one myself, but both will work in this case.
As you can see, the system is very easy to use, and is
very versatile. Please note that each screen type has certain
MCI codes that go with it. Only in Data Areas can you define
your own MCI codes. These are as follows:
With versions after v2.20, you must be careful with your
xxxxMID.ANS files. They must not be over 16K. If they are,
there will be certain problems. Some screens cannot even be
16K, those screens will be noted as they are listed.
SUBSSTAR.ANS - Message Base Listing Start
SUBSMID.ANS - Message Base Listing Middle
|AN - Base Number
|BN - Base Name
|SS - Sponsor
SUBSEND.ANS - Message Base Listing End
AREASTAR.ANS - File Area Listing Start
AREAMID.ANS - File Area Listing Middle
|AN - Area Number
|AI - Area Name
|AS - Area Sponsor
AREAEND.ANS - File Area Listing End
USERSTAR.ANS - User Listing Start
USERMID.ANS - User Listing Middle
|UH - User Handle
|LE - Level
|UN - User Note
|AC - Area Code
|LC - Last Call
USEREND.ANS - User Listing End
LASTSRT.ANS - Recent Callers Start
LASTMID.ANS - Recent Callers Middle
|UH - User Handle
|DO - Date On
|TO - Time On
|BR - Baud Rate
LASTEND.ANS - Recent Callers End
DAILYSRT.ANS - Daily Log Start
DAILYMID.ANS - Daily Log Middle
|DT - Date
|NP - New Posts
|NF - New Files
|NC - Number of Calls
|TU - Time Used
|NU - New Users
DAILYEND.ANS - Daily Log End
PRO?SRT.ANS - Protocol Listing Start
PROT?MID.ANS - Protocol Listing Middle (Limit: 1024 bytes)
|KE - Key
|DE - Protocol Description
PROT?END.ANS - Protocol Listing End
? =
1 for download protocols │ PROT1SRT.ANS ─┐
2 for upload protocols │ PROT1MID.ANS │──┐
3 for batch download protocols │ PROT1END.ANS ─┘ │
4 for batch upload protocols │ ┌──────────────┘
5 for resume protocols │ For a download protocol
6 for bidirectional protocols │ listing.
INCSRT.ANS - Incoming E-Mail Start
INCMID.ANS - Incoming E-Mail Middle
|NU - Mail #
|TI - Title of E-Mail
|ST - Status -- (New or Old)
|FM - From User
INCEND.ANS - Incoming E-Mail End
OUTSRT.ANS - Outgoing E-Mail Start
OUTMID.ANS - Outgoing E-Mail Middle
|NU - Mail #
|TI - Title of E-Mail
|ST - Status -- (New or Old)
|TO - To User
OUTEND.ANS - Outgoing E-Mail End
GENSRT.ANS - Generic Menu Template Start
|TI - Menu Title
GENMID.ANS - Generic Menu Template Middle (Limit: 2048 bytes)
|K? - Keys for option ? in the line
|D? - Description for option ? in the line
GENEND.ANS - Generic Menu Template End
(For more information on generic menus, see that section
of the documentation.)
SECTION 10: MAKING STANDARD ANSIS
─────────────────────────────────
When making the animated statistic screens, such as a new
Main User Stat screen, a few simple rules must be followed.
Screens should be made in this manner to insure that they
will work correctly with Oblivion/2.
These are the instructions to make a non-animated status
screen. Animated Status screens require a bit more work and
will require maintenance if they are not correctly made.
To make Stat Screens w/o Complex Animations, follow these
steps:
1] Draw Basic Screen.
2] Put Thedraw into ANIMATION Mode. And when prompted to
select scanning method, use "TOP" (Others may work, but
this is standard.)
3] Add the Appropriate MCI Codes, some external screens use
the |xx codes and others use the %xx codes. Make sure you
use the right ones.
4] After you've finished adding the MCI Codes, Save Animation
in Ansi file format. Select Clear Screen, and Maximum
line length to 255. Again, other numbers work, but this
is standard.
If your MCI codes seem out of place (ie: The stat isn't
showing up where I put the MCI code for it), this could be
one of two things.
1] |xx codes were used instead of %xx and vice versa.
2] Thedraw has expanded the MCI codes and Oblivion/2 cannot
recognize them.
If you used the right type of MCI codes, chances are that
your problem is #2. Thedraw has a nasty habit of expanding
MCI codes to more than 3 letters, therefore making them
unrecognizable to Oblivion/2. There is a solution to this,
ANSITRAN.EXE was written by Darkened Enmity to combat this
problem. It is included in the distribution ZIP. Here
are the instructions for using this utility:
1] Save ANSI in 80 character per line mode. With whatever
preparation you've previously chosen.
2] Run ANSITRAN filename to correct the MCI bug.
Another Screen that requires Attention is CONFSCR.ANS
Use the appropriate |xx codes for this screen, but there
is a difference in this screen than in others. When making
your ansi, you MUST make the Color Bar. Use Ansi Block
Characters to make the bar. ALL COLORS 0-15 must be in this
bar if you want it to work correctly. After you have
made the main ansi with the color bar, put it into Top Scan
Animation. Add the |xx codes. When you are adding the |CB
code (|CB is color bar), put this code OVER the Black on
Black Box. It will look a bit like this.
0123456789ABCDE (You'll have boxes, numbers are used only
for example)
|CB go right over 0,1, and 2.
An example will be provided for you.
SECTION 11: MCI CODES / SYSOP CONFIGURABLE TEXTFILES
────────────────────────────────────────────────────
STANDARD CODES: All preceeded with %
UN Handle
RN Real Name
PN Phone Number
AD Address
LO Location
UC UserNote
UL Level
FL File level
FP File Points
UK Uploaded K
DK Downloaded K
UP Uploads
DN Downloads
PS Posts
CS Calls
TL Time Left
NF New Files
NP New Posts
CR Connect Rate
TT Daily Time Limit
LC Last Caller
TC Total Calls
CT Calls Today
FT Files Uploadded or Added Today
PT Messages Posts Today
NT New Users Today
UU User Number
BN Board Name
SN Sysop Name
DT Date
TM Time
SS Current Status Screen Library Name
MS Current Menu Library Name
PC Post/Call Ratio
PF Turns Screen Pausing Off
PO Turns Screen Pausing Back On (Provided User has enabled
Screen Pauses)
NR U/D Ratio
KR U/D K Ratio
LD Last On Date
UA Makes anything below it unabortable. Use it for screens
that you want to force users to see.
CA Current Area
CB Current Base
DU Days until expiration
NN Node Number
PA Pauses the screen
VN Version Number
VD Version Date
TF Total Files
TP Total Posts
CF Current File Conference
CM Current Message Conference
CE Message # (Only activated when used with the Nx message
newscanning commands)
ANSIS IN STATUS SCREEN LIBRARIES:
BCHANGE.ANS - Message Base Changing Ansi
|SN - Base Name
|SS - Base Sponsor
|NM - Number of Messages
|UP - Number of Posts you made
|LR - Last Read
|DT - Date
|TI - Time
HDR.ANS - Message
|HM - Header Message
|LH - Repeats next character for as many characters there
are in the header message
|CC - Repeats next character for as many characters as are
needed such that four |CC and |HM fill a line.
|CH - Displays a centered header message
ZIPHEAD.ANS - Internal ZIP Viewer Header
(uses same codes as HDR.ANS, and is packed with status
libraries)
HEADER.ANS - Message Header
|BN - Base Name
|RT - Message to which current is a reply
|MN - Message Number
|OU - Total Messages
|TL - Title
|UN - Poster's Note
|FM - Poster's Name
|DT - Date Posted
|TI - Time Posted
|TO - Sent To
|ST - Status
CONFSCR.ANS - User Config Screen
|CB - Color Bar Starting
|FS - Full Screen Editor Toggle
|PL - Page Length
|DP - Pause
|AD - Address
|LC - Location
|RC - Regular Color
|PC - Prompt Color
|IC - Input Color
|VC - Inverse Color
|SC - Status Color
|BC - Box Color
|CP - Current Prompt
|EP - Emulation
|CM - Current Menu
|CS - Current Status Screen
|RR - Reply Reading
|UN - User Note
|YN - Yes No Bars
|RM - Redisplay Message
|SF - Scrollable File Listing
&xy - X = User flag. Y = Key to toggle flag.
- With this code, you can add in your own configuration
- options.
FCONFIGS.ANS - File List Config Screen
|O1 - Option 1 - Status Points
|O2 - Option 2 - Points
|O3 - Option 3 - Size
|O4 - Option 4 - Date Uploaded
|O5 - Option 5 - Downloads
|O6 - Option 6 - Uploader
|O7 - Option 7 - File Description
|US - Used Space
|EX - Example
FSEHEAD.ANS - Full Screen Editor Header
|TI - Title
|ST - Send To
|AN - Anonymous
|AU - Autosig
|DT - Date
|TM - Time
SUBSSTAR.ANS - Base Listing Start
SUBSMID.ANS - Base Listing Middle
|AN - Base Number
|BN - Base Name
|SS - Sponsor
SUBSEND.ANS - Base Listing End
FHEADER.ANS - File List Header
|FH - Line of Information
STATUS.ANS - User's Status
Standard Codes
FILESTAT.ANS - User's File Status
Standard Codes
USERSTAT.ANS - User's Stats
Standard Codes
AREASTAR.ANS - File Area Listing Start
AREAMID.ANS - File Area Listing Middle
|AN - Area Number
|AI - Area Name
|AS - Area Sponsor
AREAEND.ANS - File Area Listing End
NEWSHEAD.ANS - News Header
|BN - Base Name
|RT - Message to which current is a reply
|MN - Message Number
|OU - Total Messages
|TL - Title
|UN - Poster's Note
|FM - Poster's Name
|DT - Date Posted
|TI - Time Posted
|TO - Sent To
|ST - Status
USERSTAR.ANS - User Listing Start
USERMID.ANS - User Listing Middle
|UH - User Handle
|LE - Level
|UN - User Note
|AC - Area Code
|LC - Last Call
USEREND.ANS - User Listing End
LASTSRT.ANS - Recent Callers Start
LASTMID.ANS - Recent Callers Middle
|UH - User Handle
|DO - Date On
|TO - Time On
|BR - Baud Rate
LASTEND.ANS - Recent Callers End
OTHER: (Not in STAT libraries)
SYSPASS.ANS - System Password Ansi
|PP - Place to prompt for password
|BP - Place to put any error messages
USERLOG.ANS - Username Ansi
|NP - Place to prompt for username
|PP - Place to prompt for password
|QP - Place to prompt 'Use xx for quicker login'
|IP - Place to prompt 'Invalid User name'
QWKUP.ANS - QWK - Upload REP Packet/Process Posts ANSI
|BP - Message Base
|SP - Message Sent To
|TI - Title of Message
|OP - Operation Messages (IE: Echomail post etc..)
QWKDN.ANS - QWK - Download QWK Packet/Archive Packet ANSI
Note: All Light MCI Codes will blink until that operation
ends.
: For ease, usually codes |B1 and |B2 are placed
adjacent.
|L1 - Light #1 - Creating Control File
|L2 - Light #2 - Creating Door Information File
|L3 - Light #3 - Conference Light
|L4 - Light #4 - Message Base Light
|L5 - Light #5 - Post Information Light
|L6 - Light #6 - Archiving Mail Packet Light
|CP - Current Conference #
|BP - Current Message Base
|TP - Total Posts in Message Base
|NP - New Posts in Message Base
|EP - End - Place Where Cursor Goes After Processing
|B1 - Location of Bar + Color of Blocks as they Fill
|B2 - Color of Background of Bar
SYSSTAT.ANS - System Statistics Screen
(This screen just uses any standard % MCI codes you want)
FILEINFO.ANS - File Information Screen
|FN - Filename
|UL - Uploader
|FP - File Points
|TD - Times Downloaded
|SK - File Size (in bytes)
|FK - File Size (in kilobytes)
Template: TOPTEN-??.ANS --- ?? = the following:
TOP-1.ANS - Top ten best uploaders
TOP-2.ANS - Top ten worst uploaders
TOP-3.ANS - Top ten best downloaders
TOP-4.ANS - Top ten worst downloaders
TOP-5.ANS - Top ten best Post/Call ratios
TOP-6.ANS - Top ten worst Post Call ratios
TOP-7.ANS - Top ten best uploaders in K
TOP-8.ANS - Top ten worst uploaders in K
TOP-9.ANS - Top ten best downloaders in K
TOP-10.ANS - Top ten worst downloaders in K
TOP-11.ANS - Top ten best message posters
TOP-12.ANS - Top ten worst message posters
TOP-13.ANS - Top ten best callers
TOP-14.ANS - Top ten worst callers
TOP-XX.ANS must be in the following format. MCI Codes as
follows:
|TN - Topten Name
|N1 - User name for position #1
|V1 - Value for user #1
|B1 - Bar for user #1
|N2 - User name for position #2
|V2 - Value for user #2
|B2 - Bar for user #2
|N3 - User name for position #3
|V3 - Value for user #3
|B3 - Bar for user #3
|N4 - User name for position #4
|V4 - Value for position #4
|B4 - Bar for user #4
|N5 - User name for position #5
|V5 - Value for user #5
|B5 - Bar for user #5
|N6 - User name for position #6
|V6 - Value for user #6
|B6 - Bar for user #6
|N7 - User name for position #7
|V7 - Value for user #7
|B7 - Bar for user #7
|N8 - User name for position #8
|V8 - Value for user #8
|B8 - Bar for user #8
|N9 - User name for position #9
|V9 - Value for user #9
|B9 - Bar for user #9
|N0 - User name for position #10
|V0 - Value for user #10
|B0 - Bar for user #10
EMAILHDR.ANS - E-Mail Header ANSI
|FM - From
|DT - Date
|TM - Time
|ST - Sent To
|UN - Sender User Note
|TI - Title
FILE DESCRIPTION CONFIG MCI CODES:
|DE - Main description line.
|Dx - Extended description line.
|TC - Size uncompressed.
|CC - Size compressed.
|UL - Uploader of file.
|UD - Date of upload.
|TM - Time of upload.
|DD - Date of FILE_ID.DIZ
|ND - Newest File Date
|OD - Oldest File Date
Background Color Codes:
|16 - Black
|17 - Blue
|18 - Green
|19 - Cyan
|20 - Red
|21 - Magenta
|22 - Brown
|23 - Gray
PRINTED FILES: ALL use standard codes:
NOTLEFT .ANS - No Time Left
WELCOME .XXX - Welcome Screen
EXPIRED .BBS - Account Expired
SLOWBAUD.ANS - User's baud rate is too low and does not know
lockout pass
PRELOGON.ANS - Prelogon Screen
TOONODE .ANS - User already on another node
CHECKED .XXX - User checked for access, but has level less
than zero XXX is a level less than 0 that the
user has.
PRINT .APP - User starts applying
NUPBAD .APP - Does not know NUP
BLACKLST.ANS - User in Blacklist
LETTER .APP - Send letter to the sysop during application
DONE .APP - User done applying
ENOUGH .ANS - User paged more than the specified times
GOODBYE .ANS - User logging off
SUBS .XXX - User viewing message base listing where XXX is
the conference ID, external listings are on,
but repeat method is not.
XFER .XXX - User viewing file area listing where XXX is
the conference ID, external listings are on,
but repeat method is not. (Conference ID's can
be found in the Conference Editor)
LINEMENU.ANS - Help Screen for the Line Editor
ULCHECK.ANS - Upload checker display screen.
SYSPASS.ANS - Ansi displayed when prompting for System
Password
USERLOG.ANS - Ansi displayed when prompting for user
username and password.
NUVDOWN.ANS - File displayed to a user when he is turned
down by the new user voting committee.
KICKOFF.ANS - File displayed to a user when the SysOp decides
to kick him off using the ALT-Q key command.
SECTION 12: CONFIGURABLE CHAT
─────────────────────────────
Configurable Chat was added to allow for more
configuration for the SysOp, therefore making his board
different than anybody else's. You can make horizontal split
screen chats, vertical ones, diagonal ones, or anything that
pops into your head. To make a chat follow the following
instructions:
1] Create the design for your chat, name this CHATDEF.ANS
It will be placed in the TEXTFILE directory when you're
all done.
2] Put CHATDEF.ANS into Animation Mode, and use TOP Scan.
3] You must now create the "Margins" for the SysOp side of
the chat, and the user's side of the chat. To do this,
you'll need some MCI codes. For the left border of each
line of the SysOp's side, You use ^xx, and for the right
margin of the SysOp's type, use &xx. Do the same for the
user side. Here are the codes for the user side, `xx for
the left, and ~xx for the right margin. These MCI codes
will tell Oblivion/2 where to wordwrap each line. Here is
an example Horizontal Split Screen Chat (Non-animated, of
course). This will help you to get the idea of what you
must do.
^01 &01
^02 &02
────────|SN───────────────Split Screen Chat───|UN───────────
`01 ~01
`02 ~02
As you can see, the start MCI code will tell the program
where to start typing, and the end MCI code will tell the
program where to wordwrap. If you notice, the xx has been
replaced by numbers. Each line must have a number, so Line
01 will wordwrap onto Line 02. So, don't mix up the numbers
or you'll have a REAL MESS! If you notice in the example, the
end MCI codes have been placed right at the end of the line.
This is because the wordwrap starts where the MCI code
starts. Placing them as they are above will prevent any
problems that could arise. Place them in that fashion when
you make your own. Another thing to notice is the |SN and
|UN. |SN is the MCI code for the SysOp Name, and |UN is the
pipe code for the current user name. These are NOT required
in your screen. So if you want to play some kind of game with
the user, you can do that too.
This is an example of a vertical chat screen, if you want
to do one of those instead of the horizontal shown above:
──────────────|SN──────────────┬──────────────|UN───────────
^01 &01`01 ~01
^02 &02`02 ~02
^03 &03`03 ~03
───────────────────────────────┴────────────────────────────
In the user side, the lines `01, `02, `03 should be one
space to the left. This will become obvious when you animate
the screen in thedraw. The reason being that the user's type
starts at the `xx code. You want to give the user the most
typing he can get, so you want to start close to the middle
line.
Notice the SysOp side. Look at the &xx codes. Notice where
I put them. The SysOp's type will end on the space where the
&xx begins. To give the SysOp maximum typing, I put the codes
right over the middle line. Remember, you won't overwrite this
line because you'll animate the codes in using TheDraw.
4] Save the Screen, and use the ANSITRAN.EXE utility if it
doesn't show up properly. See the docs of ANSITRAN for
more info.
There are a few options that SysOps and users can use in
the chat mode:
/TYPE - Allows the SysOp to type any file in the textfile
directory.
/PAGE - In one line chat, /PAGE will page the SysOp. In split
screen chat, /PAGE will page the user.
SECTION 13: MENU EDITOR
───────────────────────
Introduction...............................
"-" Control Commands.......................
"&" MultiNode Commands.....................
"{" Matrix Commands........................
"!" Global Newscan Commands................
"[" Main Menu Commands.....................
"." Door Commands..........................
"*" SysOp Commands.........................
"^" New User Voting Commands...............
"C" Conference Editor Commands.............
"D" Data Commands..........................
"E" Email Commands.........................
"F" File Commands..........................
"J" Join Conference Commands...............
"M" Message Commands.......................
"Q" QWKMail Commands.......................
"R" Top Ten Listing Commands...............
"S" Message Sponsor Commands...............
"T" File Sponsor Commands..................
"V" Voting Booth Commands..................
"+" Color Setting Commands.................
Menu Editor Function Over-View.............
Introduction
Oblivion/2 2.0 Menu Editor. This is, in my opinion, the
best feature ever offered in any BBS software. The menu
editor will allow you to modify, customize, or make a totaly
unique menu system for your BBS.
The Menu Editor is a very simple yet uses a complex
system of commands that can be used individualy or stacked.
The commands can be restricted to access levels, flags,
conferences, age, and a variety other levels.
Due to the fact that just about everything in Oblivion/2
2.0 can be configured via the Menu Editor, it's pretty much
impossible for us to show you examples of how to use every
command (Not to mention I doubt anybody would actuly print 25
meg of documentation). Instead we've put together a few
samples of what can be done, and a descriptive list of all
the available commands. After that is's up to you and your
imagination. Have fun with it & take your time.
------------------------------------------------------------
"-" = Control Commands
------------------------------------------------------------
Command Key: -A
Function : Writes CString into the Header (Use With
: Stacking)
CString : <String You Would Like Displayed>
Command Key: -B
Function : Sets the Bad Prompt to CString
CString : <String You Would Like Displayed when an invalid
command is entered, blank if none>
Command Key: -C
Function : Clears The FailFlag
CString : None
Command Key: -D
Function : Sends CString to the modem.
CString : ~ = .5 sec delay, | = Return, ^X = Ctrl-X
: Note: Make sure to put your modem back
: into online mode after you execute this
: command, otherwise your BBS will be hung.
: Use the ATO command to do this. Also, make
: sure to use the +++ escape sequence to put
: the modem into command mode. Otherwise, your
: commands won't get to the modem.
Command Key: -E
Function : Writes Characters with ^ control char support
CString : <String to be displayed>
Command Key: -F
Function : Displays A Text Or ANSi File
CString : <FILENAME>
<filename> A MS-DOS filename.
This command will display a text file located
in the TEXTFILE directory.
Command Key: -G
Function : Goes in the x,y position specified in the
: CString
CString : X,Y
Command Key: -H
Function : Gets String with Hidden Input
CString : # <Length of Hidden Input String>
Command Key: -I
Function : Gets String with Normal Input
CString : # <Length Of Normal Input String>
Command Key: -M
Function : If the string inputted with -I or -H is not the
: Cstring the fail flag is set to true.
CString : <String To Check>
Command Key: -N
Function : Displays a status screen from the current status
library. (Use this in correspondence with the
STATLIST. textfile to put status screens
anywhere you want.)
CString : <Filename to print>
: IE: STATUS.ANS
Command Key: -J
Function : If the Sysop is not Available, the Fail Flag is
: Set to True If he/she is available, the fail
: flag is set to false
CString : None
Command Key: -K
Function : Change Starting Menu to CString, so all -^ will
set the fallback to the old starting menu
CString : <Menu Name>
Command Key: -L
Function : Clears the Screen
CString : None
Command Key: -O
Function : Displays file from current status screen library
CString : <File from status library to display>
Command Key: -P
Function : Pauses X Number of seconds
CString : X <Number Of Seconds>
Command Key: -Q
Function : Sets the current menu prompt to the value in the
: cstring
CString : <Menu Prompt #>
Command Key: -R
Function : Prints a Return
CString : None
Command Key: -S
Function : Changes User Flags
: Used for the first set of ACS flags.
CString : <+,-> <Flag Letter>
A "-" followed by certain letters will turn off
That flag in the users account
A "+" Followed by certain letters will trun on
That Flag if it's active in the users account
Command Key: -T
Function : Sets the Status Library to the Value in the
: Cstring
CString : <#>
# is the number of any Status Library
Command Key: -V
Function : Sets Menu Library to the Value in the CString
CString : <#>
# is the number of any Menu Library
Command Key: -U
Function : Sets the Starting Menu to cstring and sets the
: fallback of all the : menus called with the -^
: command to the menu name in the cstring.
CString : <Menu Name>
Menu Name is the name of any menu
Command Key: -W
Function : Writes CString in the Log
CString : Whatever You Want Written in the SysOp Log
This Command is good for keeping track of your SysOp's
And Co-SysOp's By Stacking it with other commands.
Command Key: -X
Function : Returns failflag if file specified by CString
doesn't exist.
CString : Filename
Command Key: -Y
Function : Changes User Flags
: For use with the second set of user flags.
CString : <+,-> <Flag Letter>
A "-" followed by certain letters will turn off
That flag in the users account
A "+" Followed by certain letters will trun on
That Flag if it's active in the users account
Command Key: -Z
Function : Pauses other commands until output (send)
buffer is empty.
CString : None
This command is useful for displaying a textfile before
hanging up on a user. Stack this command after your display
textfile command and before the hangup command.
Command Key: -+
Function : Displays a random WELCOME.x file from textfile
directory.
CString : None
Command Key: -|
Function : Checks user's infoforms to be sure that he's
filled out all mandatory infoforms. If he
hasn't, the system will go to the infoform that
was not completed and force the user to complete
it.
CString : None
Command Key: -@
Function : Reads system notices
CString : None
Command Key: -_
Function : Pages the SysOp if the user has the wanted flag
(The wanted flag can be toggled from the online
user editor)
CString : None
Command Key: -/
Function : Goes to the menu name in the Cstring and sets
: the fallback to the current menu
CString : Menu You Wanna Go To
Command Key: -\
Function : Goes to the fallback menu and sets the fallback
: menu to the previous fallback
CString : Menu You Wanna Go To
Command Key: -^
Function : Goes to the menu name in the Cstring and sets
: the fallback to the starting menu
CString : Menu You Wanna Go To
Command Key: -*
Function : Sets the input variable usually inputted with -I
: and -J to the string in the Cstring
CString : String
Command Key: -=
Function : Sets User Level to value contained in the
: CString
CString : User Level
: (Be carefull w/how you use this one..)
Command Key: -&
Function : After The execution of an external program via
: door commands, the errorlevel with which the
: external program exited will be put into the
: input string, the one that is also set with -I,
: -J, and -M.
Command Key: -(
Function : Send's The "Hit Return" prompt and waits for a
: return
CString : None
Command Key: -)
Function : Changes to the infoform set specified in the
CString
CString : Infoform set to use
Command Key: -{
Function : Goes to the menu specified in the CString,
: but will not execute any FIRSTCMD statements.
CString : <Menu to go to>
Command Key: -}
Function : Drops to the previous menu, but will not run any
FIRSTCMD statements.
CString : None
Command Key: -:
Function : Toggles locking of output to the modem.
CString : None
: Note: Use this command again to unlock the
: output to the modem.
Command Key: -;
Function : Toggles locking input from the modem.
CString : None
: Note: Use this command again to unlock the input
: from the modem.
Command Key: -$
Function : Goes to a menu keeping the current fallback menu
: and it will process FIRSTCMD statements.
CString : Menu name to goto.
Command Key: -%
Function : Goes to a menu keeping the current fallback menu
: but it won't process FIRSTCMD statements.
CString : Menu name to goto.
Command Key: --
Function : Displays and gets input in same format as prompt
string.
CString : None
Command Key: -#
Function : Sets Time left to value found in CString.
CString : Time Left
Command Key: -!
Function : Displays current menu prompt using CString
as the name in the prompt.
CString : Name in the prompt
Command Key: -.
Function : Sends the file specified in the CString.
: Note: This command automatically checks
: to see that the file being sent is not
: in the menu or data directories. If it is,
: the command is aborted.
CString : Path and Filename of the file to be sent
Command Key: -<
Function : Displays Prompt String
CString : Absolute Prompt #,Other Text 1φOther Text 2
Command Key: -~
Function : Sets Chat Reason in Status Bar to Value in
: CString. If the CString is blank, the BBS
: removes the chat reason from the status
: line.
CString : Chat Reason, or Blank to remove chat reason
Command Key: -"
Function : Sets the number of lines scrolled to 0.
: This is used to stop the screen from pausing
: for another screenful of text.
CString : None
Command Key: -1
Function : Sets Screen Pausing (variable toggled in
: user config) on/off
CString : + sets pausing on, anything else turns pausing
: off.
Command Key: -2
Function : Suspends Screen Pausing until next textfile
: display.
CString : + suspends pausing, and anything else returns
: to the default settings.
Command Key: -,
Function : Sets starting Option in a pulldown Menu
CString : Pulldown ID of the starting option
Command Key: -'
Function : Turns on Pulldown Menu Re-entrance
CString : None
Explain : This option returns to the selected option
: when the user re-enters the pulldown menu.
: This works ONLY if the command that the user
: executed does not go to another menu. IE: If
: your doors menu is set up as a pulldown menu,
: the user selects 'Solar Realms Elite'. Upon
: finishing the game, and returning to the doors
: menu, the option 'Solar Realms Elite' will be the
: highlighted option.
Command Key: -`
Function : Turns off Pulldown Menu Re-Entrance
CString : None
------------------------------------------------------------
& = MultiNode Commands
------------------------------------------------------------
Command Key: &A
Function : Gets Page Status
CString : None
Command Key: &C
Function : Enters Into Multinode Chat
CString : None
Command Key: &D
Function : Changes the activity in the logs to
: the activity that you specify in
: the CString
CString : The user's new activity
Command Key: &F
Function : Forces a user into multinode chat
CString : None
Command Key: &L
Function : Views the log of a user on the other node.
CString : None
Command Key: &M
Function : Sends a MultiNode Message to another node
CString : None
Command Key: &N
Function : Allows a user to kick a user off of another node
CString : None
: Make sure to use an appropriate ACS on this
: option so that only certain people can access
: it.
Command Key: &R
Function : Allows user on current node to join multinode
: split screen chat.
CString : None
Command Key: &S
Function : View MultiNode Status
CString : None
Command Key: &U
Function : Sends a Message to all available nodes
CString : None
Command Key: &X
Function : Sends Message in CString to all available nodes
CString : Note to send
Command Key: &[
Function : Sets user as available for multinode chat
CString : None
Command Key: &]
Function : Sets user as unavailble for multinode chat.
CString : None
-------------------------------------------------------------
{ = Matrix Commands
-------------------------------------------------------------
Command Key: {A
Function : Applies as New User. If User completed the
: application, fail flag is set to false,
: otherwise it is true.
CString : None
Command Key: {C
Function : Checks User Access. If User is validated,
: failflag is set to false, otherwise it is true.
CString : None
Command Key: {D
Function : If user can logon w/account and password
: (Doesn't need System Password), failflag is set
: to false, otherwise it's set to true.
: None
Command Key: {F
Function : Leaves Feedback to the user number contained in
the cstring
CString : User # of the user to send Matrix FeedBack to
Command Key: {G
Function : Logs Off From the Matrix
CString : None
Command Key: {L
Function : Launches Extra System
CString : System Password,ErrorLevel
: System Password being the Password a user needs
: to get to the extra system, and ErrorLevel the
: Errorlevel that Oblivion/2 would drop at. (ie
: "GETIN,58" would make the Password GETIN and
: would make Obv/2 drop at an ErrorLevel Of 58)
Command Key: {P
Function : Matrix Chat
CString : None
Command Key: {S
Function : Loads The Main BBS System
CString : x (Number between 1-999)
: When a CString is specified, PRELOGON.X, an
: USERLOG.X, and SYSPASS.X will be displayed.
: Using CString 1, these files would be printed
: PRELOGON.1, SYSPASS.1 USERLOG.1. Use for
: increased matrix effects.
Command Key: {T
Function : Sets FailFlag to false if user is able to get to
: main system through knowing the system password
: and having an account.
: This would be used for stacking commands at the
: matrix without actually logging onto to the
: board.
CString : Same as for {S.
Command Key: {X
Function : Drops into the BBS
CString : None
: Use This Command With Caution! - NOTE>
-------------------------------------------------------------
! = Global Newscan Commands
-------------------------------------------------------------
Command Key: !A
Function : Scans Message and File Conferences
CString : None
Command Key: !F
Function : Scans File Conferences
CString : None
Command Key: !M
Function : Scans Message Conference
CString : None
-------------------------------------------------------------
[ = Main Menu Commands
-------------------------------------------------------------
Command Key: [A
Function : Edits AutoSig
CString : None
Command Key: [C
Function : Pages Sysop
CString : N (Doesn't ask for reason)
: A (Forces SysOp to be available)
Command Key: [D
Function : Does the Infoform with the value contained in
: the Cstring
CString : Number Of The Infoform To Fill Out
Command Key: [F
Function : Fills out infoform into a textfile.
CString : INFOFORM#,TEMPLATE
: TEMPLATE format is a directory, and
: a filename w/o period or extension.
: IE: 1,C:\APPS\OBVAPP
: This would fill out infoform #1, and
: put it into the file OBVAPP.1, then
: OBVAPP.2, etc. These files would be
: located in the C:\APPS\ directory.
Command Key: [G
Function : Logs Off
CString : None
Command Key: [H
Function : Logs Off without displaying the goodbye ansi
CString : None
Command Key: [I
Function : Fills out Infoform
CString : None
Command Key: [K
Function : User Configuration (Goes To The "Konfig" Menu)
CString : <valid DOS filename>
: You can create multiple configuration screens
: by telling the BBS which screen to go to. Make
: sure that the screen is in your status screen
: library. (Read the STATCODE section on how to
: code an extra screen in the status libraries)
Command Key: [L
Function : Lists Users
CString : None
Command Key: [S
Function : System Status
CString : None
Command Key: [U
Function : Time Bank
CString : {Maximum Total Time} {Maximum Time to Deposit
: Today} Maximum Total Time Being total time
: allowed in the time bank. Maximum Time Today
: being the total time allowed per day. (ie 60 15
: would make a max of 60 minutes and 15 minutes
: per day)
Command Key: [V
Function : Views Daily Log
CString : # of days back to display, or blank for the
: complete log listing.
Command Key: [W
Function : Last Callers
CString : 1-20
: Tells how many callers to list.
Command Key: [X
Function : Transfer to User
CString : None
Command Key: [Y
Function : Users Status
CString : None
Command Key: [+
Function : Change Password
CString : None
Command Key: [-
Function : Forces user to change his/her password
CString : None
-------------------------------------------------------------
. = Door Commands
-------------------------------------------------------------
Command Key: .E
Function : Executes file in your main BBS Directory (No
: Door File Created)
CString : %1 = Connect Rate
: %2 = User Number
Command Key: .N
Function : Makes Door RBBS DORINFO1.DEF File with COM0
: in the DORINFO1.DEF if you are local and
executes file in the door directory
CString : <FILENAME>
Command Key: .R
Function : Makes Door RBBS DORINFO1.DEF File with LOCAL in
: the DORINFO1.DEF if you are local and executes
: the file in the door directory
CString : <FILENAME>
Command Key: .S
Function : Makes SRE DOOR.SR file and executes the file in
: the door directory
CString : <FILENAME>
Command Key: .T
Function : Makes Standard DOOR.SYS file (GAP - TeleGard -
: WildCat 3.0+)
-------------------------------------------------------------
* = Sysop Commands
-------------------------------------------------------------
Note - All of the following commands can be dangerous if
accessed by un-authorized users. Use them with
caution!
Command Key: *#
Function : Runs The Menu Editor
CString : None
Command Key: *B
Function : Allows The SysOp To Edit/View The Blacklist
CString : None
Command Key: *C
Function : Enters The System Configuration Menu
CString : None
Command Key: *D
Function : Enters MiniDos
CString : None
Command Key: *E
Function : Edits Strings (Internal Prompts)
CString : None
Command Key: *I
Function : Shows Infoforms
CString : None
Command Key: *K
Function : Clears Infoforms
CString : None
Command Key: *L
Function : Shows SysOp Log's
CString : None
Command Key: *M
Function : Make User
CString : None
Command Key: *P
Function : Enters the Protocol Editor
CString : None
Command Key: *R
Function : Configures Menu Prompts
CString : None
Command Key: *S
Function : Sets Libraries
CString : None
Command Key: *T
Function : Runs the internal Text Editor
CString : None
Command Key: *U
Function : User Editor
CString : None
Command Key: *V
Function : Event Editor
CString : None
Command Key: *X
Function : View Voting
Command Key: *Y
Function : Parameter Editor
CString : None
Command Key: *Z
Function : Archiver Editor
CString : None
-------------------------------------------------------------
^ = New User Voting Commands
-------------------------------------------------------------
Command Key: ^D
Function : Starts new user voting without asking the user
: if they would like to skip it
CString : None
Command Key: ^L
Function : Lists Users in the NUV
CString : None
Command Key: ^S
Function : Ask's User if they would like to vote on new
: users
CString : Q
: If "Q" is specified as the CString, then users
: are forced to vote on new users. They cannot
: quit
Command Key: ^Q
Function : Goes through the NUV without allowing the
: user to skip or exit.
CString : None
Note : ACS for all NUV commands is as follows:
: <NUV Level>,<Yes Votes>,<No Votes>,<Success>,
: <Deny>,<Val>
: NUV Level is the level of the users to be voted
: on, Yes/No Votes are the # of each required
: for validation or denial, Sucess/Deny Levels
: are the user levels given to users who pass and
: fail the NUV, and Val can be set to + to
: validate the user giving him the default levels.
-------------------------------------------------------------
C = Conference Editor
-------------------------------------------------------------
Command Key: CA
Function : Adds a Conference
CString : None
Command Key: CD
Function : Deletes a Conference
CString : None
Command Key: CE
Function : Edits a Conference
CString : None
Command Key: CI
Function : Initializes Conference Editor
CString : None
Command Key: CL
Function : List Conferences
CString : None
Command Key: CR
Function : Reorders Conference
CString : None
Command Key: CT
Function : Selects Conference Type
CString : None
Command Key: CU
Function : List Users with Access to a Conference
CString : None
-------------------------------------------------------------
D = Data Area Menu
-------------------------------------------------------------
Command Key: DA
Function : Adds Data
CString : None
Command Key: DD
Function : Deletes Data
CString : None
Command Key: DC
Function : Edits Data in a data area
CString : None
Command Key: DE
Function : Edits Selected Data Area
CString : None
Command Key: DF
Function : List Data w/o asking for range limits
CString : None
Command Key: DG
Function : Puts the data area listing into a file, and
: if you're remote, it will send it to you.
CString : None
: This option would be equivelant to listing the
: data area, and turning on a capture in your term
: program.
Command Key: DK
Function : Deletes Selected Data Area
CString : None
Command Key: DL
Function : Lists Data w/ asking for range limits
CString : None
Command Key: DM
Function : Add Data Area
CString : None
Command Key: DR
Function : Displays a Random Entry in this data area using
: the List Prefix followed by "RAN.ANS" as the
: ansi to tell it how it should look.
CString : None
Command Key: DS
Function : Shows Data
CString : None
Command Key: D*
Function : Selects Data Area in the Cstring
CString : # of Data Area, if blank, will let user select
: which
-------------------------------------------------------------
E = Email Commands
-------------------------------------------------------------
Command Key: EA
Function : Sysop Option to Scan Email
CString : None
Command Key: EB
Function : Looks in a User's Mail Box
CString : None
Command Key: ED
Function : Delete Incoming piece of Email
CString : # of Email - Asks For # if none is specified
Command Key: EE
Function : Edits Outgoing Email
CString : # of Email - Asks For # If None is specified
Command Key: EF
Function : Forwards Mail
CString : # of Email - Asks For # if None is Specified
Command Key: EG
Function : Edits Groups
CString : None
Command Key: EI
Function : Lists Incoming E-Mail
CString : None
Command Key: EK
Function : Kills Outgoing Mail
CString : # of Email - Asks For # if None is Specified
Command Key: EL
Function : Lists Mail
CString : None
Command Key: EM
Function : Memorize E-Mail Message
CString : None
Note : Be sure to put the M! command in the E-Mail Menu
: to allow the user to download the memorized
: messages.
Command Key: EN
Function : Scans for Email
CString : None
Command Key: EO
Function : Lists Outgoing E-Mail
CString : None
Command Key: EP
Function : Replies to Incoming Email
CString : # of Email - Asks if None is Specified
Command Key: ER
Function : Read Incoming Mail
CString : # of Email - Asks if None is Specified
Command Key: ES
Function : Sends Email
CString : # Of the user to send Email to - Asks if None is
: Specified
Command Key: ET
Function : Shows Incoming/Outgoing Information
CString : None
Command Key: EV
Function : Views Outgoing Email
CString : # Of Email - Asks if None is Specified
Command Key: EX
Function : Purges FileMail older than a number of days set
: in the config
CString : None
Command Key: EY
Function : Spy Mail
: Allows user to read his/her mail without
: marking it as read.
CString : None
Command Key: EZ
Function : Packs Email, do this every once in a while, it
: clears out deleted email and thus speeds up the
: searching for new email
CString : None
Command Key: E+
Function : Allows user to read all mail. Used with the
: E-Mail tags. Read that section for more information.
CString : None
Command Key: E-
Function : Allows user to see mail only mail addressed to him.
: Used with E-Mail tags. Read corresponding section.
CString : None
Command Key: E$
Function : Sets incoming E-Mail tag to value of CString.
: Used with E-Mail tags. Read corresponding section.
CString : (0-255) - E-Mail tag to use
Command Key: E#
Function : Sets outgoing tag to value of CString.
: Used with E-Mail tags. Read corresponding section.
CString : (0-255) - E-Mail tag to use
-------------------------------------------------------------
F = File Commands
-------------------------------------------------------------
Command Key: FA
Function : Lists File Areas Does Not Ask Which Base To
: Switch to
CString : None
Command Key: FB
Function : Batch Menu
CString : None
Command Key: FC
Function : Change Files
CString : FILENAME or # of first file to edit - Will ask
: if None is Specified
Command Key: FD
Function : Downloads Files
CString : FILENAME of # of the first file to Download
: Will ask if None is Specified
Command Key: FE
Function : Newscanns the current file area.
CString : None
Command Key: FF
Function : Newscans File Areas without asking if you want
: to scan them all
CString : None
Command Key: FG
Function : Custom File Operations
CString : Operation Name, batchfile
This function is used to add functions not supported by
Oblivion/2 into your file sections. The command works via
a batchfile that you create. The custom file operations
command will generate a list of files in the user's batch que
with pathnames. This file is called FILELST. It will be found
in the work directory. The 'operation name' part of the
CString is the name of this operation. It will be displayed
to users in the format of 'Enter up to 50 files to (Operation
Name Here)' (Just like the rest of the file section does).
The batchfile will then tell the BBS which DOS commands to
execute to perform your operation. An example setup of this
command is as follows. Say that you have an artwork oriented
board, and you leave the ansis uncompressed on your HD. You
want to let the users ZIP up all the ANSI files they want to
download into one ZIP file for easier downloading. Say you
want to call this operation 'Zip up'. This is the command in
the menu editor you'd use.
Command Key: FG
CString : Zip Up,ZIP.BAT
ZIP.BAT would look like this:
C:\OBV\PKZIP.EXE %1ZIPDANSI.ZIP @%FILELST.
When executed, it would look like this:
C:\OBV\PKZIP.EXE C:\OBV\WORK\ZIPDANSI.ZIP @C:\OBV\WORK\FILELST.
Command Key: FI
Function : Inits File Areas in the file conference selected
CString : None
Command Key: FK
Function : User Configurable File List Configuration
CString : None
Command Key: FL
Function : Lists Files in current file area
CString : None
Command Key: FM
Function : Bidirectional Transfer
CString : None
Notes : For bidirectional protocols, you need to create
: a progam that will convert the protocol's log
: files to a DSZLOG compatible log. The filename
: should be the same as the 'LOGNAME' option in
: the config with a U or D as the last part of the
: extension. IE: If you had C:\OBV\DSZLOG. The
: filename would be C:\OBV\DSZLOG.1U or DSZLOG.1D.
: U for upload, and D for download.
Command Key: FN
Function : Newscans File Areas, asks if you want to scan
: them all
CString : None
Command Key: FO
Function : Shows info for files
CString : FILENAME or # - Will ask if None is Specified
CString : None
Command Key: FP
Function : Requests file (Will Generate Notice for Each
: File Requested)
CString : None
Command Key: FQ
Function : Used to turn on/off options in the user's file
: listing configuration
CString : +/- (Option number)
: 0 Turns off All options
Example : CString: 0+127 first turns off all options, and
: then turns on options 1,2, and 7.
Command Key: FR
Function : Resumes file(s)
CString : FILENAME or # - Will Ask if None is Specified
Command Key: FS
Function : Sets File Area
CString : Area # - if zero, Obv/2 will prompt
Command Key: FT
Function : Type file(s)
CString : FILENAME or # - Will Ask if None is Specified
Command Key: FU
Function : Upload
CString : None
Command Key: FV
Function : Views files
CString : None
Command Key: FW
Function : Lists users with access to the current file
: area.
CString : None
Command Key: FX
Function : Extract file(s)
CString : FILENAME or # - Will Ask if None is Specified
Command Key: FY
Function : File Status
CString : FILENAME or # - Will Ask if None is Specified
Command Key: FZ
Function : Search for File
CString : None
Command Key: F[
Function : Previous Area
CString : None
Command Key: F]
Function : Next Area
CString : None
Command Key: F|
Function : Generate Complete File List
CString : None
Command Key: F=
Function : Toggles on/off scrollable file listing.
CString : Y = ON, N = OFF
Command Key: TG
Function : Create/Update File Catalog
CString : None
: The file catalog is a data file that contains
: the filenames of all files on your system. The
: BBS reads this file for some operations. This
: method is very fast, but before you can use it,
: you must create the catalog data file with this
: menu command. Also make sure to toggle the
: option 'Use file catalog' in the CONFIG.
-------------------------------------------------------------
J = Join Conference
-------------------------------------------------------------
Command Key: JF
Function : Joins Relative File Conference
CString : Conference # - Will ask if None is Specified.
: If the User types, Q, the fail flag will be set
: Otherwise it will not be. What Relative
: Conference means is the number of the conference
: that the user sees This means, that if there are
: 3 conferences to which user has access, the
: relative file conference number corresponds
: to the number of the conference in the listing
Command Key: JM
Function : Joins Relative Message Conference
CString : Conference # - Will Ask if None is Specified
: If the User types, Q, the fail flag will be set
: Otherwise it will not be What Relative
: Conference means is the number of the conference
: that the user sees This means, that if there are
: 3 conferences to which user has access, the
: relative file conference number corresponds
: to the number of the conference in the listing
Command Key: JS
Function : Joins Absolute Message Conference
CString : Conference ID #
: Will set the message conference to the
: conference that has the conference ID of the
: Cstring. Unlike the relative conferences
: the number never varies, however with this
: command, a user can join a deleted conference or
: one to which he does not have access
Command Key: JT
Function : Joins Absolute File Conference
CString : Conference ID #
: Will set the message conference to the
conference that has the conference ID of the
Cstring. Unlike the relative conferences the
number never varies, however with this command,
a user can join a deleted conference or one to
which he does not have access
-------------------------------------------------------------
M = Message Commands
-------------------------------------------------------------
Command Key: MB
Function : Backwards title scan
CString : None
Command Key: MC
Function : Newscan Config for the current conference
CString : None
Command Key: MD
Function : Deletes a Message
CString : None
Command Key: ME
Function : Edits a Message
CString : None
Command Key: MF
Function : Message Newscans all areas
CString : None
Command Key: MG
Function : Display BCHANGE.ANS
CString : None
Command Key: MH
Function : Sets Message Header
CString : 0 = Internal
: 1 = External
: 2 = HEADER.1, 3=HEADER.2 etc...
: HEADER.X files can be found in your status
: screen library or textfile directory.
Command Key: MI
Function : Inits Message Bases in this conferences
CString : None or N
: If "N" is the CString, then the BCHANGE.ANS
: Header will not be displayed.
Command Key: MJ
Function : Newscans by type, but does NOT update
: message pointers.
CString : T,F,D,I, or X
: T = To Current User
: F = From Current User
: D = After Date
: I = Containing Certain Information
: X = Containing Certain Text
Command Key: ML
Function : Lists Message Bases in this conference
CString : None
Command Key: MM
Function : Memorize Message in CString
CString : # to memorize, if no # is specified, the BBS
: will prompt the user.
Command Key: MN
Function : Newscans w/ prompt to scan all
CString : None
Command Key: MO
Function : Newscans messages by Type, updates pointers
CString : See MJ Menu Command
Command Key: MP
Function : Posts Message
CString : None
Command Key: MR
Function : Reads Messages
CString : None
Command Key: MS
Function : Selects Message Base
CString : # of Messages base - if 0 Obv/2 will prompt
Command Key: MT
Function : Reads Messages in this base in reply reading
: newscan
CString : None
Command Key: MU
Function : Lists Users w/ access to this conference
CString : None
Command Key: MV
Function : Reads Messages in this base w/ normal reading
: newscan
CString : None
Command Key: MW
Function : Forward Title Scan
CString : # of message to start scan
Command Key: MZ
Function : Scans for new system news
CString : None
Command Key: M[
Function : Previous Message Base
CString : None
Command Key: M]
Function : Next Message Base
CString : None
Command Key: M!
Function : Download Message Capture
CString : None
Command Key: N#
Function : Reads the message with the # specified in the
: CString
CString : Message # to read.
Command Key: NA
Function : Reads the current message again.
CString : None
Command Key: NB
Function : Backward thread of messages.
CString : None
Command Key: ND
Function : Delete current message.
CString : None
Command Key: NE
Function : Edits the current message.
CString : None
Command Key: NF
Function : Forward Title scan with pointer advance
CString : None
Command Key: NI
Function : Sets the fail flag to true if the user is at the
: last message.
CString : None
Command Key: NL
Function : Sets the fail flag to true if the user is at the
: last message base.
CString : None
Command Key: NM
Function : Memorize Current Message
CString : None
Command Key: NN
Function : Reads next message.
CString : None
Command Key: NO
Function : Backward title scan from current message.
CString : None
Command Key: NP
Function : Private Reply to Message.
CString : None
Command Key: NR
Function : Reply to the current message.
CString : None
Command Key: NT
Function : Forward title scan from current message.
CString : None
Command Key: NU
Function : Update current message as lastread message.
CString : None
Command Key: NX
Function : Backward Title scan with pointer retreat
CString : None
Command Key: NY
Function : Returns failflag if current base is not in
newscan
-------------------------------------------------------------
Q = QWKMail Menu
-------------------------------------------------------------
Command Key: QD
Function : Updates Last Read Message # to the first message
: after the date specified.
CString : None
Command Key: QL
Function : Allows the user to edit the last QWK Reply
: Upload Date
CString : None
Command Key: QM
Function : Make QWK Packet
CString : None
: Hitting ESC two times aborts the creation of a
: QWK packet.
Command Key: QR
Function : Receives REP Packet
CString : None
Command Key: QU
Function : Updates user pointers so that all messages
: are marked as READ.
CString : None
: You might want to force your users to use this
: when they first login so that they don't DL a
: huge QWK packet.
-------------------------------------------------------------
R = Top Ten Listing
-------------------------------------------------------------
Note for ALL Top Ten menu commands: If you put a * after your
header (in the CString field), the top ten listing will NOT
pause (prompt for return).
Command Key: RA (Top Ten #1)
Function : Top Ten List by Top Uploaders
CString : Header
Command Key: RB ( Top Ten #2)
Function : Top Ten List by Worst Uploaders
CString : Header
Command Key: RC (Top Ten #3)
Function : Top Ten List by Top Downloaders
CString : Header
Command Key: RD (Top Ten #4)
Function : Top Ten List by Worst Downloaders
CString : Header
Command Key: RE (Top Ten #5)
Function : Top Ten List by Top PCR
CString : Header
Command Key: RF (Top Ten #6)
Function : Top Ten List by Worst PCR
CString : Header
Command Key: RG (Top Ten #7)
Function : Top Ten List by Top K Uploaded
CString : Header
Command Key: RH (Top Ten #8)
Function : Top Ten List by Worst K Uploaded
CString : Header
Command Key: RI (Top Ten #9)
Function : Top Ten List by Top K Downloaded
CString : Header
Command Key: RJ (Top Ten #10)
Function : Top Ten List by Worst K Downloaded
CString : Header
Command Key: RK (Top Ten #11)
Function : Top Ten List by Top Posters
CString : Header
Command Key: RL (Top Ten #12)
Function : Top Ten List by Worst Posters
CString : Header
Command Key: RM (Top Ten #13)
Function : Top Ten List by Top Callers
CString : Header
Command Key: RN (Top Ten #14)
Function : Top Ten List by Worst Callers with header in
: Cstring
CString : Header
-------------------------------------------------------------
S = Message Base Sponsor
-------------------------------------------------------------
Command Key: SC
Function : Copy One Message Area to Another Area
CString : None
Command Key: SE
Function : Edit Current Message Base
CString : None
Command Key: SK
Function : Kill Current Message Base
CString : None
Command Key: SM
Function : Make Message Base
CString : None
Command Key: SP
Function : Packs Message Bases
CString : None
Command Key: SR
Function : Reorders Message Bases
CString : None
Command Key: SX
Function : Moves a Message from one base to another
CString : None
Command Key: S@
Function : Toggles Access to all file bases
CString : None
-------------------------------------------------------------
T = File Sponsor Commands
-------------------------------------------------------------
Command Key: TA
Function : Add Files
CString : None
Command Key: TC
Function : Offline Clean Up, takes files that are not
: present out of the file listings
CString : None
Command Key: TD
Function : Delete Files
CString : FILENAME or # to start list - Will Ask if None
: is Specified
Command Key: TE
Function : Edit Current File Area
CString : None
Command Key: TF
Function : Move Files
CString : FILENAME or # to start list - Will Ask if None
: is Specified
Command Key: TJ
Function : If a file doesn't exist in the directory
: specified by its individual file record, the
: path will be changed to the one of the area.
CString : None
: This command should be used when you want to
: move a whole area from one drive to another one.
: Instead of editing every file's directory,
: simply move the files to the new drive, change
: the area's directory, and then run this command.
: All of the files will be updated to the new
: directory.
Command Key: TK
Function : Kill File Area
CString : None
Command Key: TM
Function : Make File Area
CString : None
Command Key: TN
Function : Copys One File Area to Another
CString : None
Command Key: TP
Function : Global Point Reassign
CString : None
Command Key: TR
Function : Re-Order Areas
CString : None
Command Key: TS
Function : Sort Areas
CString : None
Command Key: TT
Function : Offline Tag, Tags files that are not there as
: offline and offline : files that have been
: returned as online.
CString : None
Command Key: TU
Function : Global Local Upload
CString : None
Command Key: TV
Function : File Validation
CString : None
Command Key: T@
Function : Toggles Access to all file areas
CString : None
Command Key: T+
Function : Increases the user's file points by the value
: found in the CString
CString : # of points to add the user's record
Command Key: T-
Function : Decreases the user's file points by the value
: found in the CString
CString : # of points to remove from the user's record
Command Key: T=
Function : Sets the user's file points to the value in
: the CString
CString : # (Value to set user's points to)
-------------------------------------------------------------
V = Voting Commands
-------------------------------------------------------------
Command Key: VA
Function : Add Question
CString : None
Command Key: VC
Function : Checks for unanswered mandatory questions
CString : None
Command Key: VD
Function : Deletes voting question
CString : # of voting question to delete - will prompt if
blank
Command Key: VL
Function : Lists Voting Questions
CString : None
Command Key: VR
Function : Answers Voting Question
CString : # of voting question - Will Prompt if zero
Command Key: VS
Function : Shows Results to Voting Question
CString : # of voting question - Will Prompt if zero
-------------------------------------------------------------
+ = Color Setting Commands
-------------------------------------------------------------
Command Key: +1
Function : Sets Regular Color
CString : Color (ie 15 would set to white)
Command Key: +2
Function : Sets Prompt Color
CString : Color
Command Key: +3
Function : Sets Input Color
CString : Color
Command Key: +4
Function : Sets Inverse Color
CString : Color
Command Key: +5
Function : Sets Stat Color
CString : Color
Command Key: +6
Function : Sets Box Color
CString : Color
Command Key: +S
Function : Sets your colors to the default colors defined
: in the System Configuration
CString : None
-------------------------------------------------------------
Oblivion/2 Menu Editor
-------------------------------------------------------------
Oblivion/2's Menu Editor is much like Telegard /
Renegade's Menu editing system. There are some expanded
functions that should be known.
The main menu editing interface consists of 9 commands.
A sample of the interface is shown below. (Scaled down)
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Menu Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Name : BBS List │
│ (B) Password : │
│ (C) Fallback Menu : │
│ (D) Help ID : BBSLIST │
│ (E) Name In Prompt : BBS List │
│ (F) Menu Title : BBS List │
│ (G) Pulldown ANSI : │
│ (H) Edit Options │
│ (I) Generic Menus │
╘═══════════════════════════════════════════════════════════╛
(A) The first command is plain and simple... The name of
the menu. It is there for the user's reference.
(B) A Password for the menu can be specified.
(C) A Fallback menu. This is the menu that will be used
as a return of fallback. If no fallback is
specified, then the system will make the last menu
in the stack as the default fallback.
(D) This is the ID for the file to be hardcoded when
Menu Libraries are coded. (ie: MAIN = MAIN.ANS in a
menu LIB file)
(E) Menu Title To Be Displayed in the menu prompt.
(F) (Reserved) There may be utilities that may use them
such as ones that will generate generic menus that
look half-way decent. That is if anyone gets around
to writing the utility.
(G) Pulldown Ansi. This option will be explained
further in the documentation.
(H) Allows Editing of the menu's actual options
(I) Displays a generic menu.
Most of these options are pretty much self
explanitory, so if you don't understand what one does
- experiment.
-------------------------------------------------------------
(H) Edit Options. The following is a sample screen
of the option editor.
1 FIRSTCMD D* 2 A* -A 3 A* DA
4 D* DD 5 L* DL 6 S* DS
7 Q* -\
(A)dd (C)hange (D)elete (M)ove (Q)uit :
From this menu there isn't all that much to do. You
can simply add, delete, move, or change menu
functions.
To Edit an option, hit C then the option number.
The following screen will be displayed.
╒═══════════════════════════════════════════════════════════╕
│Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : D* │
│ (E) Keys : *D │
│ (F) Command String : 1 │
│ (G) Pulldown ID : 0 │
│ (+) Next Option │
│ (-) Previous Option │
╘═══════════════════════════════════════════════════════════╛
(A) Option Name - Name Of the option the way you
want it displayed in a generic menu. (This is
also used in a pulldown menu. SEE Pullown Menus
for more)
(B) ACS - Access Level, Flag, or other restriction
to use for this option.
(C) Hidden - Determines if the option name will be
displayed in a generic menu. (This is also used
in pulldown menus)
(D) Command Keys - The actual Command that will be
executed.
(E) Keys - this is the key, or keys used to execute
the command. You can put FIRSTCMD to execute the
command when the user goes to the menu or EACH
to do it before the prompt is drawn, every time
the user is at the menu.
(F) Command String - Some commands will allow the
use of a command string. See each command for a
command string(s) if any.
(G) Pulldown ID - This is used in pulldown menus.
(SEE Pulldown Menus for more)
-------------------------------------------------------------
In the Pulldown Filename, there can be the following:
<blank>
Draws Menu Prompt with the name in the prompt in the prompt
and does standard input
::X
Where X is a letter in the alphabet. Randomly picks a
letter from A to X, and will act as if the user pressed
that key.
Example: Random Matrices
The above command can be used to easily make random
matrices. Say that you have 4 matrices that you want to
randomize. Since D is the 4th letter of the alphabet, your
pulldown filename will be ::D. (Without the period) In your
MATRIX.MNU, you'll have need to have four commands with the
'Key' Field set to A,B,C,D. Now, for each command, you'll
want it to go to a different menu. That new menu will be
one of your matrices. Here's an example of one command that
you'll have in the MATRIX.MNU.
Description : Go to DOS Matrix
Hidden : No
Command Keys: -^ (GOTO Menu)
Key : A
CString : DOSMAT
Do the same thing for the other 3 letters. Note that you
can't have other commands in the menu as they won't be
executed. Only commands that will be executed will be the
ones with the keys A-D.
N
Writes the Name in the Prompt alone
May Contain:
^R - Regular Color ^S - Status Color
^P - Prompt Color ^E - Input Color
^V - Inverse Color ^X - Box Color
^M - Goes down a line
Using The Following To End:
/ Yes/No Bar Prompt beginning with No
\ Yes/No Bar Prompt beginning with Yes
= Yes/No/Quit Bar Prompt Beginning with Yes
| Yes/No/Quit Bar Prompt Beginning with No
@ Yes/No/Quit Bar Prompt Beginning with Quit
* Inputs String
: Inputs String with a : in a different color
# Hotkey without Echo
) Hotkey with Echo
( Sets the string equal to the Input Question
varaible set with -I, -J, or -M
You can use the following characters in the keys of a menu
using a name in prompt ending with a # or ).
ALT-200 (Up) ALT-208 (Down) ALT-205 (Right)
ALT-203 (Left) ALT-199 (Home) ALT-207 (End)
All pipe codes are also applicable in this prompt.
This command is used to make menus that ask questions,
create hotkeyed type menus, or get input from users.
Bx
Does Bar selection menu with x number of columns
R
Uses a one-line bar menu. When creating command stacks,
make sure to only put a description on the first option in
the stack, otherwise your whole command stack will appear
on this menu. Also, make sure that all options don't exceed
80 colums, as this is a ONE line bar menu. If your options
exceed the 80 column limit, use the bar menus.
<filename.ext>
With this option in the menu editor, you can create your
own pulldown menus! You'll need to create an ansi design for
your menu and add in a few MCI codes to tell the BBS where to
place information. There are two types of MCI codes that
you'll need to use for this menu. The first, |xx, tells the
BBS where to put the highlight bar. The second type is the
%xx, this tells the BBS what color to use when the option is
not highlighted. When you place these codes in your ansi, it
becomes practical to place them next to each other like this.
|xx%xx. You can include any other |xx color codes (1-15) to
change colors in the unhighlighted display. Use the |- command
to return to the original unhighlighted color.
These xx's must be replaced by numbers so that the BBS
knows which option to execute. Thats where the pulldown ID
field of the menu editor comes into play. You need to give
each one of your options a unique ID#. Start at 1 for the
first option, and then use 2 for the second option and so on.
If you're stacking commands for a certain part of your menu,
only give the first command a pulldown ID.
So, say you want to make a pulldown matrix with 5
options. Logon, Check, Apply, Feedback, and Logoff. Create
your MATRIX.MNU, and add in each of these 5 options. (Look at
the above documentation for all of the menu commands to use).
After that is done, go back and place a pulldown ID for each
option. Since you have 5 options, and no command stacking,
just give login a pulldown ID of 1, Check a 2, Apply a 3,
Feedback a 4, and Logoff a 5. After you've done this, create
your ANSI for the pulldown menu. Put in the MCI codes as
described above, and your menu is all ready to go.
Now, say that you wanted to make that same matrix but you
wanted to use some type of command stacking in it. For
example: Say that you want the BBS to login a user after
they've checked and found out that they have access. This is
done by using the failflag and a few menu commands. Since
this option requires more than one menu command, it's called
a command 'stack'. Now, the first option in this stack is
going to be the check command. Only use the pulldown ID for
this command, and not for any other command in the stack.
(For this example, the other command would be the Drop into
BBS menu command {X. Make sure not to give that a pulldown
ID.)
Now, you're probably wondering why you only put an ID on
the first command in the stack. Think about it this way, you
only want the pulldown bar to go onto the options that the
user can execute, and not commands that you've customized to
perform more than one function. Only the first function
should have the ID.
Instead of only using up and down in your pulldowns, you
can use left and right. Below are the sybmols that you'll
need to use in the "Keys" field for the BBS to recognize left
and right.
Left : ╦ (ALT-203)
Right: ═ (ALT-205)
If you want to use left/right, make the option(s) hidden, and
give them a pulldown ID of 0.
If you put "L" as the name in prompt of a pulldown menu, left
will be interpreted as up, and right will be interpreted as down.
Another handy option that you might consider using is the
hidden flag. You can make a hidden option that doesn't appear
on the pulldown menu, but that the user can execute via
hotkey. So, give your hidden option a pulldown ID of 0, and
turn on the hidden flag, and the command will become
hotkeyed, and you'll be able to execute it w/o using the bar.
There is wildcarding for menu commands:
If you set the Key to X*, then you can put * in the
Cstring and that will put what follows the X in the
Cstring. This is advisable for such cases as file
conference jumping such as J* with would do JM with a
Cstring of * so one could J1,J2, etc.
Also a possibility for CString is & in which is set to the
input gotten with -I, -J, or set with -*.
There are a few special menus in the editor. One, called
MATRIX.MNU, is your logon matrix. You can call other menus
with it, but your starting menu must be MATRIX.MNU. A second
important menu is called GLOBAL.MNU. In this menu, every
command will you add will be valid on every other menu.
(Example, adding a goodbye command into the GLOBAL.MNU will
allow your users to hang up at any menu.)
A second thing you'll see mentioned in the menu editor
is called 'Command Stacking'. Think of this as command
linking. One command can do more than one operation. For
example, you can have a command that clears the screen (-L),
and prints a file to the screen (-F). To do this, you need to
make your 'Keys' Field in the menu editor identical. Example:
Create a command with 'Keys' as "T". Make one command with
the 'Command Keys' as -L, and another with 'Command Keys' as
-F. Make sure the 'Keys' field is "T" in both. Notice now,
that the command will first clear the screen (-L), and then
print a file (-F) (Enter a filename in the Cstring of the -F
command). This is a simple example, but the idea is the same.
Stacks get bigger and more complicated, but the general idea
stays the same. (Notice examples below)
Examples:
GOODBYE.MNU - Pulldown Logoff Verify Menu
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Menu Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Name : │
│ (B) Password : │
│ (C) Fallback Menu : │
│ (D) Help ID : │
│ (E) Name In Prompt : │
│ (F) Menu Title : │
│ (G) Pulldown ANSI : LOGOFF.ANS │
│ (H) Edit Options │
│ (I) Generic Menus │
╘═══════════════════════════════════════════════════════════╛
Use Pulldown Ansi LOGOFF.ANS
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : Yes │
│ (D) Command Keys : [G │
│ (E) Keys : Y │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Y as a hotkey to logoff
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : Yes │
│ (D) Command Keys : -\ │
│ (E) Keys : N │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
N as a hotkey to go back
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : Yes │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : [G │
│ (E) Keys : 1 │
│ (F) Command String : │
│ (G) Pulldown ID : 1 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
" Yes" will appear in pulldown option 1 and when selected it
will do a logoff.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : No │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : -\ │
│ (E) Keys : 2 │
│ (F) Command String : │
│ (G) Pulldown ID : 2 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
" No" will appear in pulldown option 2 and when selected it
will go back.
Another example, the not very nice case. This was devised by
me, Darkened Enmity for Whiplash. He wanted to use a
pulldown menu to select file conferences. I got the idea of
the -* command and the use of & in the CString. I knew that
would work, and the next day I wrote out the codes. This is
the CONFHAND.MNU for you to look at since it is complex,
but will allow you to understand how things are done. There
is a menu called CONFSEL.MNU that will select the file
conference in a pulldown. CONFHAND is called like this:
Command 1 in Stack:
Command Keys : -*
Keys : T*
Command String: *
Command 2 in Stack:
Command Keys : -/
Keys : T*
Command String: CONFHAND
Now here is CONFHAND.MNU:
╒═════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Menu Editor │
╘═════════════════════════════════════════════════════════╛
╒═════════════════════════════════════════════════════════╕
│ (A) Name : │
│ (B) Password : │
│ (C) Fallback Menu : │
│ (D) Help ID : │
│ (E) Name In Prompt : │
│ (F) Menu Title : │
│ (G) Pulldown ANSI : │
│ (H) Edit Options │
│ (I) Generic Menus │
╘═════════════════════════════════════════════════════════╛
Not very interesting, but then the user does not even know
that it is doing anything.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : -S │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : -B │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Turns off the B user flag. It will be used later in the menu
as an indicator.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : -M │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Compares the inputted variable with a blank string.
Remember, before CONFHAND was called, the inputted variable
was set to what was entered after T by the -* command. If
what was entered was blank, the failflag is false, otherwise
it is true.
╒══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘══════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : \ │
│ (C) Hidden : No │
│ (D) Command Keys : -S │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : +B │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘══════════════════════════════════════════════════════════╛
This command will be executed if the failflag is true, in
other words, what was entered after T was not blank.
Therefore, if the user had type T1, then
B will be set, otherwise it remains blank.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB │
│ (C) Hidden : No │
│ (D) Command Keys : JF │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : & │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
If flag B is set, the BBS will do a file conference jump to
that conference. A trace through up until this point: User
enters Txxx xxx is put into the input variable The BBS
compares xxx to a blank string They are not equal, flag B is
set The BBS joins relative file conference xxx
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB │
│ (C) Hidden : No │
│ (D) Command Keys : -C │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Turns failflag off, thats necessary to know if the next
command failed.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB │
│ (C) Hidden : No │
│ (D) Command Keys : FI │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
Tries doing a file initialization. If its successful, fail
flag is still false.
╒══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘══════════════════════════════════════════════════════════╛
╒══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB~\ │
│ (C) Hidden : No │
│ (D) Command Keys : -^ │
│ (E) Keys : FSCAN │
│ (F) Command String : │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘══════════════════════════════════════════════════════════╛
If flag B is set and the file init was successful, the BBS
will go to FSCAN, the menu that asks if you want to scan the
file bases.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : fB │
│ (C) Hidden : No │
│ (D) Command Keys : -^ │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : MAIN │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
If flag B is set, meaning the BBS would have tried initing
the file section and was not successful, and the BBS is still
reading CONFHAND, then the BBS will go to the main menu.
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Command Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Option Name : │
│ (B) ACS : │
│ (C) Hidden : No │
│ (D) Command Keys : -^ │
│ (E) Keys : FIRSTCMD │
│ (F) Command String : CONFSEL │
│ (G) Pulldown ID : 0 │
│ ([) Previous Option │
│ (]) Next Option │
╘═══════════════════════════════════════════════════════════╛
If you are still in this menu, meaning that the user did not
enter anything at the prompt, then go right ahead to CONFSEL.
Yeah, a complex example that does not do much physically,
yeah, I know, but it demonstrates a lot, plus it shows some
similarities between high-level menu editing and assembly.
SECTION 14: MESSAGE / FILE BASE SETUP
─────────────────────────────────────
Setting up message and file bases is quite easy. Both
message and file bases have editors for easy changing of
options. In the message menu, the editor looks just like
this:
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Base Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Base Name : System News │
│ (B) Access ACS : S30 │
│ (C) Post ACS : S255 │
│ (D) Allow Anonymous: No │
│ (E) Sponsor : Lord Tracer │
│ (F) Origin Line : │
│ (G) EchoMail Dir : │
│ (H) NetMail : No │
│ (I) Node : │
│ (J) QWKName : SYSNEWS │
│ (K) Autodelete : 200 │
│ (L) Real Names : No │
│ (M) Base File Name : NEWS │
│ (N) Mandatory : Yes │
│ (O) Allow Private : No │
╘═══════════════════════════════════════════════════════════╛
Base Name - Name of message base.
Access ACS - ACS required to get into message base.
Post ACS - ACS required to post in message base.
Allow Anonymous - Can users post anonymously in this
message base?
Sponsor - Pseudo-SysOp. Can delete all messages,
read all messages in the current base.
Origin Line - Line BBS adds to the end of a
echomailed message. Usually showed BBS
name and #. Pipe codes supported.
Echomail directory - Directory where echomail MSG files
will be held, imported, and exported
from.
Netmail - Should this base support private
netmail through Fidonet mail. For this
option to work, you must compile a copy
of your nodelist and place it in your
Echomail directory. Compile the
nodelist as filename nodelist.dat, and
using BINKLEY6 format. The reason you
must compile the nodelist in the
echomail directory is for the nodelist
lookup function of the BBS. The BBS
will allow users to search the nodelist
for the node that they wish to send
netmail to.
Node - Assigned to you by your network
moderator. Basically shows location.
Form varies, but usually its X:XXX/XXX.
QWKName - Shortened name of the message base to
be displayed to users in their offline
readers. Most offline readers cannot
support message base names over 10-12
spaces. Use this option so that users
can better recognize which base they
are in from their reader.
Autodelete - How many total messages do you want in
the message base. When the # of
messages in the base is equal to the
number in this field, 5 messages will
be erased. This keeps your message base
files from growing increasingly large.
Real names - Should the user's real name be used in
place of a handle in this message base?
Base filename - This is an up to 8 character filename
that the BBS will use to store your
messages in.
Mandatory - When this flag is set to Yes, all the
messages in this base will be forced.
Users must read these messages. Use
message bases like this for news.
Allow private - Should users be able to post private
messages in this base. Use this flag if
the network you're in supports private
echomailing.
Using the base filename, you can create a 'shared'
message base. What this means is that you can have the same
message base in more than one conference, or if you run
multiple Systems, can have it on two different boards. (ie:
System one, and System two can have identical message bases
if the sysop should wish). To create a shared message base,
use the same base filename in two message areas. They will
then be shared. Once you post a message in one area, it will
appear in both, and vice versa. When you wish to remove a
shared message base, you have an option. You can either
delete the data file, or leave it. By deleting the data file
in a shared area, both message bases that were sharing that
data file will lose all of their messages. By leaving the
data file there, you can remove the base from one place, but
keep it in another.
To create a message base for system news, it takes a few
simple steps. First, create a message base, and name it
System news, or whatever you want. Fill out the rest of the
questions. When you come to 'Mandatory', turn it to Yes. When
a user logs on, the BBS will check this message base for new
posts, and then proceed to show them to the user. (Look at
the example screen for the message base editor. This is an
ideal setup for news.)
Another thing to be clear about: If you ever have a base
that you are using for echomail, and want to turn off
echomail, do this: Edit the Import/Export directory setting,
and then press 'CTRL-Y'. The field will be cleared. Press
enter. Now, this base is no longer an echomail base, but now
a normal message base.
When going to edit a file base, you will be presented
with a similar looking editor. It looks a little like this:
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Area Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Area Name : New Uploads │
│ (B) Access ACS : S25 │
│ (C) Upload ACS : S25 │
│ (D) Download ACS : S25 │
│ (E) List ACS : S25 │
│ (F) Sponsor : Lord Tracer │
│ (G) Password : │
│ (H) Area File Name : UPLOADS │
│ (I) Path : C:\UPLOAD\ │
│ (J) Default Sort : F │
│ (K) Multipiler : 1 │
│ (L) Free Area : No │
╘═══════════════════════════════════════════════════════════╛
Area Name - The name of the current file area.
Access ACS - ACS required to enter the file area.
Upload ACS - ACS required to upload to the area.
Download ACS - ACS required to download from the area.
List ACS - ACS required to list files in the area.
Sponsor - Pseudo SysOp of the file area. User
gets extended functions.
Password - Password required to enter file area.
Area filename - Filename (w/o extension) that the BBS
will use to store file information for
the current area.
Path - Path to the files for this area.
Default sort - Sort type to use when sorting the file
areas. (example: F=filename,
E=extension etc..)
Multiplier - When you set the points of a file, that
value is multiplied by the number you
put here. This is used to make
downloading from one area cost more
than downloading from others. If you
don't want to use this option, set it
to 1.
Free Area - If this is set to yes, all files in the
area are marked as free and no credit
is deducted for their download.
You may also create 'shared' file areas. Read the above
paragraphs for explanations on how to do this.
SECTION 15: THE UPLOAD CHECKER
──────────────────────────────
The upload checker will check all uploaded files for CRC
errors, viruses, age, and can optionally add/delete files, or
add a comment to your uploaded files. Operation of the
checker is quite simple. It only requires the creation of one
screen. This screen, called ULCHECK.ANS, will be the display
to the user when files are being checked. Making this screen
is really easy, there are a few MCI codes to use in the
screen. They are as follows:
|FN - Filename
|B1 - ■ in CRC Checking.
|M1 - Strings displayed during CRC checking.
|B2 - ■ in virus scanning.
|M2 - Strings displayed in virus scanning.
|B3 - ■ in age tests.
|M3 - Strings displayed during age testing.
|B4 - ■ in deleting files from archive.
|M4 - Strings displayed during deleting.
|B5 - ■ in adding files.
|M5 - Strings displayed in adding files.
|B6 - ■ in comment adding.
|M6 - Strings displayed when adding comments.
|B7 - ■ in file maintainence. (MAINTAIN.BAT)
|M7 - Strings displayed when running MAINTAIN.BAT.
These codes are pretty easy to figure out. Each option
has a blinking ■ that is displayed when that operation is in
process. When the option completes, the ■ will stop blinking.
The |Bx MCI goes where you want the ■ to go for each option.
The |Mx MCI codes go where you want any progress/error
messages displayed about the current operation. All of these
messages can be configured via the string editor.
All of the setup for the upload checker is done in the
CONFIG program, specifically under 'System Options #2'. You
can completely toggle off the checker, or certain operations
of it by leaving the field blank. For example, if you don't
want to add any files to your checked files, then leave
'Files to add' in the CONFIG blank. The same goes for
commenting, or scanning.
A nice feature of the upload checker is that it can
perform age constraint testing on your uploaded files. In
System Options #2, there is a date field. Set this to
whatever you want, and if the newest file is older than the
date specified, the file will fail the upload checking.
The unique part of the upload checker is that you can
perform additional maintainence via a batch file called
MAINTAIN.BAT. (Note: FILE_ID.DIZ checking is now internal to
the upload checker, so you don't have to create a special
maintain.bat that will extract FILE_ID.DIZ). There are two %
codes that can be used in the maintain.bat. These are %1 for
filename, and %2 for path of the work directory. Note that %2
will also include the trailing backslash of the work
directory's path.
SECTION 16: CONFIGURABLE ARCHIVERS
──────────────────────────────────
The configurable archiver system allows the SysOp to
setup multiple archivers, and allow the BBS to use these
archivers for various operations. You can configure as many
archivers as you want, and the users will be able to choose
which archiver they want to use. The BBS will then use their
default choice to pack QWK packets, pack message captures,
pack filelists etc, View Files, Extract Files etc..
Another good thing about the archiver system is that it
can automatically detect what type of archive it's working
with. It doesn't use the extension, but it uses the signature
to find out what type of archive is present. A signature is a
certain identification string that lets you identify what
type of archive is being used. More on this will be explained
later.
Editing, and adding archivers is quite simple. The menu
command for configurable archivers is *Z. Once you're in the
archiver editor, the screen will look a bit like this:
╒═══════════════════════════════════════════════════════════╕
│ Command : (Q)uit Oblivion/2 Archiver Editor │
╘═══════════════════════════════════════════════════════════╛
╒═══════════════════════════════════════════════════════════╕
│ (A) Archive Name : PKZIP │
│ (B) Archive Ext. : ZIP │
│ (C) Use Zip Viewer : Yes │
│ (D) Swap for Coms : Yes │
│ (E) Compress Com : PKZIP.EXE %1 %2 │
│ (F) Extract Com : PKUNZIP.EXE %1 %3 %2 │
│ (G) View Com : VIEWZIP.BAT │
│ (H) Make SFX Com : ZIP2EXE.EXE %1 │
│ (I) Error/Test Com : 1/PKUNZIP.EXE -T %1 │
│ (J) Add Comment Com: ADDCOM.BAT │
│ (K) Add Files Com : PKZIP.EXE -A %1 %2 │
│ (L) Sig String : PK │
│ (M) Sig Location : 1 │
│ (N) List Prefix : @ │
│ (O) Checker Only : No │
│ (=) Insert Archiver │
│ (-) Delete Archiver │
└═══════════════════════════════════════════════════════════╛
The above commands will be explained here:
Archive name - Enter the name of the archiver.
Archive extension - Enter the extension that this archiver
produces.
Use ZIP viewer - This toggles the use of the Obv/2
internal ZIP viewer. Only turn this on
if the archiver is ZIP compatible.
Swap for commands - If you want the BBS to swap to DISK/EMS
XMS before running archiver commands,
turn this option on.
Compression command - Place the command that the archive uses
to compress files. %1 = Path and
filename, and %2 = wildcard. (All of
this will be filled in by the BBS.)
Extraction command - Place the command that the archive uses
to extract files. %1 = Path and
filename, %2 = wildcard, and %3 = Path
to your work directory.
View command - Place the command that the archive uses
to view files. You must force output to
a file using DOS redirection commands,
BUT you must do this using a batch file
. The file that contains the output
from the archiver must be named
ARCLIST. and it must be in your work
directory. %1 = Path and filename, %2
= wildcard, and %3 = path to your work
directory. Here is an example batch
file:
@%2..\PKUNZIP.EXE -V %1>%2ARCLIST.
See the example above if you don't
understand how to redirect the output
of the archiver.
Make SFX command - This is the command that the archive
uses to create Self-Extracting (.EXE)
archives. %1 = Path and filename, %2 =
wildcard, and %3 = path to your work
directory.
Maximum Errorlevel - Errorlevels above this # will be
interpreted as a failed upload. #'s
under this will be passed uploads.
Due to PKZIP's -AV, you should make
this option 1 for ZIP. Other archivers
vary. See the archivers documentation
on the errorlevels it passes on failed
and passed archives.
Add comment command - This is the command that the archive
uses to add comments to the archive.
Again, you must follow the above
example of redirection with a batch
file. %1 = Path and filename, and %2 =
Comment file. You can setup this file
in the CONFIG under System Options #2.
Add files command - This is the command that the archive
uses to add additional files to an
archive. %1 = Path and filename, and %2
= the files to add to the archive. This
also can be configured via System
Options #2 in the CONFIG.
Signature String - This is the signature identification of
the archiver. Each archiver has a
certain ID string that it uses to
identify archives that it made. For
example, PKZIP puts a PK in the first
two bytes of its files. This lets PKZIP
know that any file with a PK in the
first two bytes was created by PKZIP.
If this ID changes, like in LHA, you
can use a ? in the signature location
to signify a wildcard. You MUST have
other letters that the program can
search for. DO NOT JUST PUT ? in the
sig string! You must enter all of the
signature ID's in HEX format. So, go
into a hex editor, and find the
signature and its location, then enter
the string in HEX.
Signature location - This is the location in bytes of the
starting location of the signature
string. So, if the first two letters
of the archive are PK, then you'd put
1 in this field.
List prefix - Many archivers use a certain charater
when you want the program to read in a
list of files from a textfile. IE: In
PKZIP, you can ZIP a group of files
that you specify in a textfile like
this: PKZIP OBV2-210.ZIP
@C:\OBV2\OBV2.LST It will ZIP up all
of the files in OBV2.LST. Well, as you
can see, you had to preceed that file
by a @. This @ is the list character.
Enter the list character in this
field.
Checker Only - This option should always be set
to No for an archiver such as
PKZIP, ARJ, LZH etc. If you want
to add a program which is not an
archiver to manipulate the files,
then set this option to yes. An
example of this would be a program
that took the GIFspec of a file, and
placed that information into a FILE_ID.DIZ
which the BBS could import. Included with
Oblivion/2 is support for SAUCE commenting
standard. The program called SAUCEPAN.EXE
will read the ansi, and create a FILE_ID.DIZ
according to a sysop-specified template.
This FILE_ID.DIZ will be imported after
the program runs. The above 2 examples
(GIFSpec, and SAUCE) are two times when
the 'Checker Only' option should be set
to yes. See the docs to SAUCEPAN for info
on how to setup SAUCE with Oblivion/2.
Add/Insert Archiver - Self-Explanatory.
SECTION 17: GENERIC MENU CONFIGURATION
──────────────────────────────────────
Ever needed to complete that killer configuration, but
you were missing one part. Which part could that be? You have
your status screens, menu (MNU) files, prompts, strings. What
else is there? The ANSI menus.
ANSI menus can be used to give that final touch. What if
you can't make them as good as other people? What if you
don't want the ones available. What if you want a simple
straightforward, no-nonsense menu set. What can you do?
The answer is generic menus. Don't let the name fool
you, these are more powerful than ANSI menus. You don't need
to constantly edit these menus whenever you modify your menu
commands. These will update themselves automatically.
How do you make these generic menus? It's done simply by
making a REPEAT ansi. This 3-part repeat ANSI will let the
BBS automatically update the menus when a new command is
added. (Read the section on making repeat ANSI files before
you continue further.)
Now that you're fimilar with the 3-part repeat ANSI
method, lets make some generic menus. First, you'll need to
know the MCI codes for theses screens. They are as follows:
GENSRT.ANS -- Generic Menu Template Start ANSI
MCI Code: |MT -- Menu Title
GENMID.ANS -- Generic Menu Template Middle ANSI
MCI Code: |K? -- Keys for option ? in the line
MCI Code: |D? -- Description for option ? in the line
GENEND.ANS -- Generic Menu Template End ANSI
Now, if you'd read the section on making repeat ANSIs,
this should be really easy for you. If not, go back and read
them! The first ansi GENSRT.ANS is pretty straightforward. So
is the last one, GENEND.ANS. The middle ANSI, GENMID.ANS
needs a little explaining.
Before you can edit the GENMID.ANS file, you should
decide how many options you want per column in your generic
menus. This is a CONFIG option under System Configuration #2.
The limits are 1-9. After you've entered this #, you're ready
to make a set of generic menus.
The two pipe codes |Kx, and |Dx that make up the
GENMID.ANS file are very simple. One prints the KEY, and the
other prints the DESCRIPTION. Say you wanted to make a
generic menu set that had 3 columns, and 5 options per row.
First, you'll need to go into the CONFIG, and set that #
of lines option to 5. (This option was discussed about 2
paragraphs above.) Next, edit the GENMID.ANS file. Place your
MCI codes in a simple fashion like this:
[|K1] |D1 [|K2] |D2 [|K3] |D3
With an arrangement like this, your generic menu will look
something like this.
[1] Option #1 [2] Option #2 [3] Option #3
[4] Option #4 [5] Option #5 [6] Option #6
(And so on for 5 total lines. This menu would fit a maximum
of 15 total options. 3 columns x 5 rows)
As you can see making these menus is quite simple. Now,
after you've made your menus, you have a few choices of where
to put them. You can code the menu into a status screen
library, or you can code it into a menu library.
If you wish to code it into a status screen library,
include the GENxxx.ANS files in your temp directory, and
STATCODE.EXE will automatically include them in the completed
LIB/NDX files.
If you want to code the generic menus into a menu
library of their own, you'll need to add a commandline option
to menu code. This option, /G, will code generic menus into a
menu library file. An example commandline would be:
MENUCODE.EXE OBV2 C:\TEMP\ /G
This codes the OBV2.LIB file from the files found in
C:\TEMP\. It will also code the GENxxx.ANS files in the temp
directory.
You also get another added feature when you code the
generic menus through a menu library. You can override that
config option we spoke of. (# of options per row). In our
example, we had 5 options per row. Say that you wanted to
change that to 3 options per row for this PARTICULAR set
only. You'd do the following.
MENUCODE.EXE 3OBV2 C:\TEMP\ /G
The 3 before the rest of the library name told Obv/2
that this generic menu set will be using 3 options per row.
You can make that number anything between 1-9. This allows
you to make differently styled menus and let the users
select. Note that now your compiled library is called
3OBV2.LIB and not simply OBV2.LIB.
SECTION 18: Functions of ANSI.SYS
─────────────────────────────────
The ANSI escape codes for screen control supported by the MS-DOS
ANSI.SYS device are a subset of the ANSI 3.64-1979 standard.
They are used by Oblivion/2 to manipulate screen information,
primarily cursor position and color changes.
An escape code consists of two segments of data: (1) an identifier
(the esc[ part, esc being the ASCII char AltGr-27 or 1Bh) and (2)
the control code, the actual command to perform on the cursor or
screen. Thus, all ANSI codes begin with esc[ and end with a code.
All codes supported by ANSI.SYS are listed below, the identifier
included, with a short description of it's use.
Note that case is significant for the last character in an
escape sequence and that numbers must always be represented as
ASCII digit strings, not as their binary values. Also note,
that cursor positions are one-based, making 1,1 upper left corner
(and not 0,0). (A separate set of escape sequences supported by
ANSI.SYS, but not compatible with the ANSI standard, may be used
for reprogramming and remapping the keyboard. These are not
supported by Oblivion/2).
================================================================
Escape
Sequence: Meaning:
================================================================
Esc[2J Clear screen. Place cursor in upper left corner
(home position).
Esc[K Clear from cursor to EOL.
----------------------------------------------------------------
Esc[row;colH Position cursor. (Row is the y coordinate in the
range of 1-25 and col is the x coordinate in the
range of 1-80 for 80-by-25 text display modes).
Escape sequences terminated with the letter f
instead of H have the same effect. (Esc[H will
home cursor).
*NOTE* Since ANSI.SYS doesn't support go to X column in
current row, and thus TheDraw doesn't add that
code in, Obv/2 uses it's own. Esc[;xxH should go
to XXth column in first row, but for middle in
the repeat ansis (and only middle in the repeat
ansis), it goes to the XXth column in the current
row. You therefore need to edit your repeat ansi
in an ascii editor when you've finished the
middle part. See the section about repeat ansis
for more information.
-----------------------------------------------------------------
Esc[nA Move cursor up n rows.
Esc[nB Move cursor down n rows.
Esc[nC Move cursor right n rows.
Esc[nD Move cursor left n rows.
Esc[s Save current cursor position.
Esc[u Restore cursor to saved position.
Esc[6n Return current cursor position on the standard
input handle in the format esc[row;colR.
-----------------------------------------------------------------
Esc[nm Select character attributes (values for n):
0=no special attibutes
1=high intensity
2=low intensity
3=italic
4=undeline
5=blink
6=rapid blink
7=reverse video
8=concealed text (no display)
30=foreground black
31=foreground red
32=foreground green
33=foreground yellow
34=foreground blue
35=foreground magenta
36=foreground cyan
37=foreground white
40=background black
41=background red
42=background green
43=background yellow
44=background blue
45=background magenta
46=background cyan
47=background white
=================================================================
Esc[=nh Select display mode (values for n):
0=40-by-25, 16-color text (color burst off)
1=40-by-25, 16-color text
2=80-by-25, 16-color text (color burst off)
3=80-by-25, 16-color text
4=320-by-200, 4-color graphics
5=320-by-200, 4-color graphics (color burst off)
6=620-by-200, 2-color graphics
-----------------------------------------------------------------
14=640-by-200, 16-color graphics (EGA and VGA)
15=640-by-350, 2-color graphics (EGA and VGA)
16=640-by-350, 16-color graphics (EGA and VGA)
17=640-by-480, 2-color graphics (MCGA and VGA)
18=640-by-480, 16-color graphics (VGA)
19=320-by-200, 256-color graphics (MCGA and VGA)
Escape sequences terminated with l instead of h
have the same effect.
-----------------------------------------------------------------
Esc[=7h Enable line wrap.
Esc[=7l Disable line wrap.
=================================================================
ASCII Bell ^G
-----------------------------------------------------------------
Esc[#;string;p Reassign a "string" or another value to a key.
The first # or esc[#;#p can be also written as 0;# for
extended ASCII key codes.
=================================================================
SECTION 19 - SETTING UP WITH OS/2
─────────────────────────────────
ABOUT OS/2
----------
OS/2 is probably the best operating system available,
whether for running DOS, Windows or OS/2 applications.
It gives you superb multitasking, while still being
easy to use and setup. However, the default configura-
tion provided by IBM may not be the best for your
system, and you can probably gain in performance by
changing a few things. This chapter is divided into
four parts, each covering their own topic:
The first is an introduction to OS/2 for those still
using DV (either loving or hating it) - when and why
they should consider upgrading to OS/2.
The second is a collection of tips and tricks I have
learned through using OS/2 for a long time, as well as
a guide to optimizing your system for performance.
The third is a list of utilities for OS/2 - what
they offer you, and how you use/install them.
The fourth and last part is specifically dedicated
to running a bbs and a mailer under OS/2 - a few
last words on the experiences I have made while
running a BBS under OS/2.
1: About OS/2
-------------
First, let's make sure you aren't wasting your time.
In order to use OS/2 (as opposed to just looking at
it or waiting for it), you need a 386dx40 with 8mb
ram. Dont install OS/2 if you have less ram - it's
well worth the money for some extra ram, and you're
going to need 8mb ram anyways in case you consider
running Chicago when that arrives late 1995 <g>.
In general, ram is more important to OS/2 than
cpu - I'd choose a 486sx20 with 16mb over a 486dx2
with 8mb any time.
Why should you install OS/2 in the first place?
First, there's the multitasking. Since you're a
sysop, wouldnt you like to browse the networks while
a user was online - or zip those private files for
the online user, without shelling to dos. Ofcourse,
formatting those 50 disks and 10 tapes you just bought
is much less time consuming in the background.
Processing a lot of mail? - you just run GEcho in
the background when you get a mail call. A future
version of Oblivion/2 may support background upload
checking, so your users can continue being online while
Obv/2 processes their uploads! You get the point :)
But you can do all that under DesqView, no need for
you to switch from your current system. Or?
You'll gain memory management like you've never
dreamed possible. No matter how many device drivers
you load, they will eat 0 bytes low DOS memory, so you
always end up with around 640kb largest executable
program size. I'd say that's fairly nice. It's one of
the advantages of the DOS running under OS/2 being
100% emulated.
As opposed to DV, if you run a nasty application
and it crashes/hangs, you simply close it and start
a new task - it wont crash the whole system. That's
very valuable when testing task settings or testing
a fragile product.
Another valuable addition is virus, ansi bomb
and trojan protection through omitting certain
functions from the DOS emulation. Direct sector-
writes are not allowed, and if you try to format
a drive you are asked for additional confirmations,
not just (y/N). That gives protection from almost
anything, except ViSiON-X <G>.
You hate that graphical user interface (GUI) - it has to
be much slower and complicated to use than good old DOS?
Look out your window at that car passing by. Was that
a yellow sports-car or was it a SUPRA G9/XLi? Pictures
are much easier to remember, and you can customize your
OS/2 desktop in every aspect. Colors, folders (they're
like directories under DOS), icons, and much more (far
too detailed to put here). Do you use Norton Commander?
That's one way of simplifying commands and putting up an
easier interface for accessing your files. OS/2's GUI is
but a step further up the interface.
Dont be mistaken though, you're not replacing your
prompt and putting a shell around your computer. OS/2
doesnt turn your PC into a MAC - you simply press enter
or double-click an icon, and you're back where you feel
home. You arent loosing anything, thus you can only be
gaining - right? :)
2: Optimizing OS/2
------------------
This section assumes you know OS/2 and how to get from the
desktop into the different settings and configuration menus.
If you dont, read whatever comes with OS/2 (I havent seen
the 2.1 manuals :), and it will most likely tell you how
you do this.
As you will have noticed, in the menu where you specify
whether a task is to be DOS or OS/2, Full-screen or window,
there is no OS/2_Settings button next to the DOS_Settings.
That is because OS/2 tasks figure this out on their own -
they are written to work with OS/2 and dont need to be
customized like DOS programs. Thus, this section will only
explain settings related to DOS programs.
Lets take a look at your CONFIG.SYS - here's a few tips
on setting it up correctly:
IFS=F:\OS2\HPFS.IFS /CACHE:1024 /CRECL:64 /AUTOCHECK:DEF
This line determines the cache size for HPFS, OS/2's file-
system. Unless you're using OS/2 only, and never booting
DOS, I suggest you have at least 10mb ram before
considering HPFS. It is faster on big drives, but will eat
too much ram if you have only 6 or 8mb. If you have no
HPFS drives at all, make sure this line isnt present or
contains a REM to disable it.
BASEDEV=IBM1S506.ADD /A:0 /U:0 /SMS /V
This one is your IDE/AT-BUS device driver. The above will
boost performance on drive 1 in your system, in case it
supports SMS. Look up BASEDEV for more information on this.
SET AUTOSTART=TASKLIST,FOLDERS,CONNECTIONS
Remove PROGRAMS from this line, or you may end up with a
loop crashing your system.
SET COMSPEC=F:\OS2\CMD.EXE
Normally you dont have an autoexec.cmd file when starting
OS/2 programs. Adding "/K AUTO.CMD" will run AUTO.CMD
every time you start an OS/2 task.
SET DELDIR=
REM SET DELDIR=C:\DELETE,512;E:\DELETE,2048;
OS/2 handles deleted files by copying them into a
directory specified here. Turning off the delete directory
as done in line 1, severely speeds up delete time as OS/2
doesnt copy/move your file(s) to the delete directory.
Instead of using DELDIR you should install GammaTools,
please see section 3 (utilities) for more on this.
SET DPATH=F:\OS2;F:\OS2\SYSTEM;...
This is NOT your DOS path, as one is led to believe
through the name. DPATH is your data path, and you seldom
need to edit this yourself. LIBPATH is you library path,
and it is wise to add a directory to that where you store
DLL's from installed programs, so as not to mix them up
with OS/2's own DLL files. Finally, PATH is your OS/2 path
and here goes the path to your OS/2 batch directory (*.CMD
files), utility directories, etc. Use the autoexec files
to set your DOS path.
SET OS2_SHELL=F:\OS2\CMD.EXE
That "/K AUTO.CMD" might be for this line, I'm not using
it myself :-) Experiment, and tell me ;)
SET PROMPT=[$p]
To get rid of that help line OS/2 has, remove "$i" from
your prompt line.
PRIORITY_DISK_IO=NO
Give the foreground task priority in disk I/O? Since
you're running a BBS setting it to NO will give better
disk access for upload checking or searching, while you
may feel a slowdown in your current task. The slower
your computer is, the more you'd probably want to put
it to YES.
THREADS=128
A program can branch off a thread - it's the way to do
multiple things at once within the same program. Unless
you're doing a lot of work, you can reduce the default
to 128 and save some RAM. Read section 3 (PM Patrol) to
find out how you can monitor active number of threads.
AUTOFAIL=YES
Removes those ugly big-screen error messages when you
fx access a floppy drive w/o a disk inserted. Instead,
OS/2 simply fails and reports "Drive A: not ready".
DISKCACHE=512,LW,64,AUTOCCHECK:C
This is for FAT formatted drives only. LW enables Lazy-
Write; 64 is similar to the CRECL value in the HPFS
statement, and determines how large chunks of files
should be cached. The AUTOCHECK statement specifies
which drives to check after a system crash (those
forced by a reset or power loss). In general, make
sure all drives are listed in your AUTOCHECK statements.
Refer to your OS/2 manual for FAT cache sizes - remove
it if you have no FAT drives at all - and _DONT_ install
an external cache.
SWAPPATH=F:\ 2048 8192
This is where your swapfile resides, how much space
should be left on the drive where it resides before OS/2
alerts you of low disk space, and how large it should be
initially. Specifying the root of a drive speeds up
performance a weeny bit, but that's for the fanatics
like me :) Specifying too small a value for the swap
file size will make OS/2 continually work on keeping the
swap file within the limits you specify, causing overall
performance to drop. A good rule of thumb is to set the
size = ( 20 - xx mb ram installed). I have 16mb, and have
an 8mb swap file - 4 would probably suffice, but I dont
mind the space for the gain in performance.
RMSIZE=640
If you want to use the MODE_RESTRICTION=CGA setting found
in the DOS_Settings, you should set this to 639 (kb)
instead, as a bug in OS/2 2.10 turns off that options
when 640 is specified. Not all programs like CGA to be
off, but it will give you another 96kb low DOS memory,
and could be useful in some cases. It is similar to the
QEMM STEALTH option, if I recall correctly.
DEVICE=C:\OUTIL\FOSSIL\SIO.SYS (COM1:38400,3F8,IRQ4,,F)
Replace COM with SIO (Serial I/O drivers), they are much
better and they also provide a fossil for use in DOS boxes
under OS/2. They are written by the author of X00 - read more
in section 3 about SIO.
DEVICE=F:\OS2\VDISK.SYS 512,,
A ram disk such as this is useful for swap files and
temporary packets such as created by InterMail. Use only
if you have enough ram!
DOS=HIGH,UMB
Make sure you change that default LOW,NOUMB into
HIGH,UMB to get more DOS memory. I wonder what IBM was
thinking when they made LOW,NOUMB default!
DEVICE=C:\OUTIL\FOSSIL\VSIO.SYS
SIO again - this is the VCOM replacement.
DEVICEHIGH=F:\OS2\MDOS\ANSI.SYS
All those nice DOS devices - just put a DEVICEHIGH
instead of DEVICE and you might gain an extra kb or two
in DOS memory. I am using this, and it certainly won't make
your system crash, but I can't vouch for the memory gain.
Further, you can speed up your boot time by sorting the
commands in your config.sys. Beware of doing this, as
OS/2 will refuse to boot if you make a mistake, and the
order in which to sort may not seem 100% clear (it's NOT
A-Z!). But there is a lot to gain (I went from 45 to 30
seconds boot time!) by doing it. Grab the file called
CFGSRT11.ZIP off your local PD OS/2 board, or do it as
in my config.sys, which should be included in the Obv/2
package. But be careful and have a backup ready.
Next, lets take a quick look at the "DOS Settings",
which is your way of customizing every single DOS task
to it's specific needs and 'bugs'. I shall do this like
the config, and only comment those worth commenting:
DOS_AUTOEXEC [F:\AUTO_BBS.BAT]
Specify a different one for every task is a good way of
customizing your DOS task, regarding environments,
doskey, command processor (4DOS), etc...
DOS_BACKGROUND_EXECUTION [ON]
Leave on for the BBS, but off for TheDraw or SimCity,
as they shouldnt use any cpu when you're not in that task.
DOS_DEVICE [C:\FOSSIL\VX00.SYS]
This is the fossil driver for DOS, found in the SIO
package. Be sure to load it in every task using com
ports, and don't use X00 as VX00 was written specifically
for DOS under OS/2. A good tip is to write "SIZE=0 "
before the actual device driver - and it will use no
DOS memory.
DOS_STARTUP_DRIVE []
Having problems making a program work? Use VMDISK to
create a DOS image file, from which you can boot (fx
[DOS.IMG] would boot from a file called DOS.IMG). It
makes your task just like a real DOS, you can also
specify fx [C:] in the brackets, causing you to boot
from your C: drive (while running OS/2 ofcourse :)
DOS_VERSION [C:\DOS\FORMAT.COM,6,20,255]
The format command of OS/2 doesnt support the /Q switch
- using DOS_VERSION you can make all the nasty MSDOS
utils work too.
HW_TIMER [OFF]
Hardware timer - unless you want that yeller Obv/2 has
to go bananas you should turn this on, although it may
decrease performance a bit. I'm not sure :-)
IDLE_SECONDS [0]
Specifies the amount of time a program has to be idle
before OS/2 will quench it's cpu usage - this is useful
in making keyboard polling programs use less or no cpu.
In most cases a setting of 0 will be best, although I
recommend 2-3 for your BBS task - you wouldnt want OS/2
to take back cpu at a critical moment when your modem
re-negotiates.
IDLE_SENSITIVITY [50]
This is _THE_ setting of them all to optimize your
system. Set it to at least 40 for your bbs task, or
higher if your computer isnt at least a 486dx ;)
Reduce to 1 on programs doing nothing mission
critical but stealing all of your cpu - this goes for
programs like Borland Pascal, TheDraw, Norton Commander
or Boomer's Utils. Set it to 100 on sensitive programs
such as CP Backup (which tolerates almost nothing). Use
PM Patrol (see section 3) to determine the correct
setting for a specific program.
VIDEO_XXX
All the VIDEO setting need only be changed when you run
a game or similar thing - the defaults are okay for
your plain DOS tasks.
And finally, all kinds of extra tricks about OS/2 -
either performance or usage related, in no special
order:
- Turn animation and progress indication off - they're
just slowing down your system. Dont install a
picture as a background, it will eat about 1mb
valuable memory and use a lot of extra cpu in usage.
- Putting programs in the startup folder causes them
to start at boot. You can control the sequence by
making the startup folder "flowed" and adding the
icons in a FIFO way (first in, first out).
- Remove unused DOS device drivers from your
CONFIG.SYS. Those will usually be the CD-ROM driver
or the HPFS cache.
- To save space on your boot drive, you can delete all
MCA drivers. They can be recognized by two files having
the same name except for a digit which will be either
1 or 2. For example, IBMxFLPY.ADD. The 2 files are
only for MCA machines.
- Changing resolution can be a pain if OS/2 does not
detect your hardware correctly. After a boot your
screen will be out of sync, and you can see nothing.
(A) Boot OS/2 from floppy, go to your boot drives \OS2
directory and run "SETVGA X:" (X being your drive
letter). This restores your mode to the default.
(B) Delete the file called SVGADATA.PMI in your \OS2
directory and reboot. This may only work for standard
cards such as TSENG, but it worked for me, and you
can always use (A) to restore whatever you've
messed up.
- Put "[]" in the parameter field of a task and it will
ask you for parameters on execution. Good for a virus-
scanner or defragger. Any text you put between the
brackets will be displayed to you when OS/2 prompts
for the parameter.
- When you change settings for your tasks OS/2 often
'forgets' your icon. Just click the UNDO button in the
'General' settings, and it'll be back.
- Deleting undeletable objects: Move the file onto a
floppy drive by dragging it there, then format the
floppy.
- Using && and || on your command-line. Fx. "COPY *A*
C:\ && DEL *A*" will only execute the DEL command if
COPY was succesful. Using || would make DEL execute
only if COPY failed. Powerful, but simple.
3: Utilities
------------
(SIOxxx.ZIP)
First, let's get SIO installed. The worst part about SIO
are the settings you need to setup in DOS_Settings - they
have no description and thus you have no clue what you're
working on. SIO is wonderful, but it can also make your
system crash every now and then if configured incorrectly.
The following is a list of the settings I use - they are
certified to work with HS/Link which was a problem in the
default configuration. Here goes:
SIO_Idle_Sensitivity [100]
DONT change this - it made my system hang ever so often.
Last time I tested was version 1.24 though.
_Mode_DTR [No change..]
_Mode_FIFO_Load_Count [16]
_Mode_IDSR [Ignore..]
_Mode_OCTS [..RTS/CTS or Ignore/None]
_Mode_ODSR [..DTR/DSR or Ignore/None]
_Mode_RTS [No change..]
_Mode_XON/XOFF [No XON/XOFF..]
_Sync_Kludge [Off]
_Share_Access_With_OS/2 [Off]
_Virtual* [On]
Also, make sure you have an 16550A UART on your serial
port, if you use 9600 or higher.
(GAMMAxx.ZIP)
Next, GammaTools. They feature a lot of good utilities
for OS/2, such as Defrag, SectorEd, Undelete, etc..
Fairly poor coding but they do what they were made to
do, which is the important part.
(EXDESK.ZIP)
Get EXDESK - it adds a grid option to your desktop so
you can align your icons a bit nicer. It also removes
"arrange" from your dekstop-menu, which really makes
this program a must.
(PMPxxx.ZIP)
PM Patrol is a status bar for your desktop, showing all
you need to know about your system in a compact way -
cpu/memory usage, drive info, swapfile size, processes,
threads and windows open, and much more..
(MNICON.ZIP)
A utility adding drag'n'drop capability to your icon
files, making it easy to assign new icons to your programs.
(WPSBKxxx.ZIP)
Creates a backup of your desktop, so you restore it the
day you change to another version oredition of OS/2, or
out of some other reason have messed your setup.
(AMOSxxx.ZIP)
AMOS is a program to access your HPFS drives from native
DOS - this is extremely helpful if you need to edit your
config.sys and you dont want to boot from the install
disks. Further AMOS can rescue your data the day OS/2
wont boot and your data reside on HPFS volumes.
(HSTARTxx.ZIP)
A replacement to the OS/2 start command, so you can start
a new task from another DOS task. This is how I do my mail
tossing in the background:
HSTART /DOS /FS /B /C C:\BATCH\GTOSS.BAT
Look in the HSTART docs for details.
4: Running a BBS under OS/2
---------------------------
Generally you can put all DOS programs into three
categories:
1 - Those supporting OS/2 by slicing in an OS/2
friendly way. These will use no cpu when idle and
only as much as they need when being used. HS/Link
is a fabulous example, as it will eat no more than
5% of your cpu when a user is transferring files!
2 - Those whose slicing can be detected by OS/2, and
quenched according to the values specified in the
IDLE SECONDS and IDLE SENSITIVITY settings. Most
programs with standard program loops can be
detected. They will use more cpu than they need
when in use, but almost nothing when idle. A good
example is TheDraw, which is 'tamed' completely
through the IDLE settings.
3 - Those who either require all available cpu or using
non-standard loops for polling the keyboard. An
example is GSZ, which uses 100% cpu for the same
transfer HS/Link can do using only 5% of the total cpu.
A lot can be gained by testing this, and replacing the
poorly behaving programs with alternatives supporting
OS/2. Up to version 2.10 of Oblivion/2 it was in the 3rd
category, using all available cpu for polling the
keyboard. As of version 2.20 this has changed, and
Oblivion/2 is now a much more OS/2 friendly program - it
will be much easier running multiple nodes under OS/2
with the new version, and you can run at least 3-4 nodes
on a single machine without any problems. A later
version of Oblivion/2 will include additional support,
such as turning off local screen display, background
upload processing and maybe even background transfers :-).
Using a mailer under OS/2 is equal to running a bbs -
a well behaved program will eat much less of your
valuable resources. InterMail and FrontDoor are very
much alike, yet IM is a much better behaved application.
In comparison, IM will use between 0% and 20% cpu in idle
mode, while FD will clog your system and use whatever
it can get. Althogh newer versions of FD may have
improved, I would still recommed IM over FD.
In short, use the cpu monitoring program PM Patrol
whenever possible to determine if a program is well
behaved or you should go look for an alternative.
REM ***********************************************************
REM ****** OS/2 v2.10 - Optimized CONFIG.SYS - Feb 2, 1994
REM ***********************************************************
REM ***********************************************************
REM IFS's
REM ***********************************************************
IFS=F:\OS2\HPFS.IFS /CACHE:1024 /CRECL:64 /AUTOCHECK:EF
REM IFS=F:\OS2\SUBSTFSD.IFS
REM ***********************************************************
REM BASEDEV's
REM ***********************************************************
BASEDEV=OS2DASD.DMD /Q
BASEDEV=PRINT01.SYS
BASEDEV=IBM1FLPY.ADD
BASEDEV=IBM1S506.ADD /A:0 /U:0 /SMS /V
REM ***********************************************************
REM SET statements [sorted alphabetically, to look nicer]
REM ***********************************************************
PROTSHELL=F:\OS2\PMSHELL.EXE
SET AUTOSTART=TASKLIST,FOLDERS,CONNECTIONS
SET BOOKSHELF=F:\OS2\BOOK;
SET COMSPEC=F:\OS2\CMD.EXE
SET DELDIR=
REM SET DELDIR=C:\DELETE,512;E:\DELETE,2048;
SET DPATH=F:\OS2;F:\OS2\SYSTEM;F:\OS2\INSTALL;F:\;F:\OS2\BITMAP;
F:\OS2\MDOS;F:\OS2\APPS;
REM SET EPMPATH=F:\OS2\APPS;
SET GLOSSARY=F:\OS2\HELP\GLOSS;
SET HELP=F:\OS2\HELP;
SET IPF_KEYS=SBCS
SET KEYS=ON
SET OS2_SHELL=F:\OS2\CMD.EXE
SET PATH=F:\OS2;F:\OS2\SYSTEM;F:\OS2\INSTALL;C:\CMD;F:\;
F:\OS2\MDOS;F:\OS2\APPS;C:\OUTIL\TOOLS;C:\OUTIL\PACK;C:\OUTIL\Q;
SET PROMPT=[$p]
SET RUNWORKPLACE=F:\OS2\PMSHELL.EXE
SET SYSTEM_INI=F:\OS2\OS2SYS.INI
SET USER_INI=F:\OS2\OS2.INI
SET VIDEO_DEVICES=VIO_SVGA
SET VIO_SVGA=DEVICE(BVHVGA,BVHSVGA)
REM ***********************************************************
REM OS/2 specific commands [protectonly, etc]
REM ***********************************************************
LIBPATH=.;F:\OS2\DLL;F:\OS2\MDOS;F:\;F:\OS2\APPS\DLL;
PRIORITY_DISK_IO=NO
THREADS=128
AUTOFAIL=YES
DISKCACHE=512,LW,64,AC:C
IOPL=YES
MAXWAIT=2
MEMMAN=SWAP,COMMIT,PROTECT
PRIORITY=DYNAMIC
SWAPPATH=F:\ 2048 8192
REM TIMESLICE=60,125
PRINTMONBUFSIZE=0,0,0
PROTECTONLY=NO
RMSIZE=640
CODEPAGE=865
COUNTRY=045,F:\OS2\SYSTEM\COUNTRY.SYS
REM ***********************************************************
REM OS/2 devices [sorted alphabetically, where applicaple]
REM ***********************************************************
DEVINFO=KBD,DK,F:\OS2\KEYBOARD.DCP
DEVINFO=SCR,VGA,F:\OS2\VIOTBL.DCP
REM DEVICE=F:\OS2\TESTCFG.SYS
DEVICE=F:\OS2\DOS.SYS
DEVICE=F:\OS2\PMDD.SYS
DEVICE=F:\OS2\MOUSE.SYS SERIAL=COM2 RELAXED
DEVICE=F:\OS2\POINTDD.SYS
DEVICE=C:\OUTIL\FOSSIL\SIO.SYS (COM1:38400,3F8,IRQ4,,F)
REM DEVICE=F:\OS2\APPS\SASYNCDA.SYS
DEVICE=F:\OS2\VDISK.SYS 512,,
REM ***********************************************************
REM DOS specific commands [dos=high,umb, etc]
REM ***********************************************************
BREAK=ON
BUFFERS=60
DOS=HIGH,UMB
FCBS=1,0
REM FCBS=16,8
FILES=60
REM ***********************************************************
REM DOS devices [sorted alphabetically, where applicaple]
REM ***********************************************************
DEVICEHIGH=F:\OS2\MDOS\ANSI.SYS
DEVICEHIGH=F:\OS2\MDOS\EGA.SYS
DEVICEHIGH=F:\OS2\MDOS\VDPMI.SYS
DEVICEHIGH=F:\OS2\MDOS\VDPX.SYS
DEVICEHIGH=F:\OS2\MDOS\VEMM.SYS
DEVICEHIGH=F:\OS2\MDOS\VMOUSE.SYS
DEVICEHIGH=C:\OUTIL\FOSSIL\VSIO.SYS
DEVICEHIGH=F:\OS2\MDOS\VXMS.SYS /UMB
DEVICEHIGH=F:\OS2\MDOS\VSVGA.SYS
SHELL=F:\OS2\MDOS\COMMAND.COM F:\OS2\MDOS
REM RUN=C:\OUTIL\TOOLS\SUBSTHST.EXE
REM ***********************************************************
SECTION 20: USING E-MAIL TAGS
─────────────────────────────
The E-Mail tag system is a powerful system that gives
you extended control of your electronic mail. The tag system
allows you to assign certain tags with certain types of email.
For example, you could assign new user application mail a
tag of 1. Then, you could give a user (other than the sysop)
access to read mail with tag 1 (CoSysOp for example). Then,
the CoSysOp would be able to validate new users. This system
can be used for many other things. It's all up to your imagination.
The system has 4 basic menu commands. They are as follows:
E+ - Allows user to read all mail with specified tag.
(Use the E$ and E# commands to set the Tag#)
E- - Lets user see only mail addressed to him.
(Puts things back to normal)
E$ - Sets the incoming E-Mail tag to the value of CString.
CString: 0-255 -- If CString = 0, user can see ALL
mail regardless of tag.
E# - Sets the outgoing E-Mail tag to the value of CString.
CString: 0-255 -- If CString = 0, user can see ALL
mail regardless of tag.
This is how one would go about setting up the above example
of allowing a cosysop to read the new user feedback.
Step 1: Stack a E$ command with a CString of 1 before the
apply command at the matrix.
Step 2: Stack a E$ command with a CString of 0 AFTER the
apply command at the matrix.
Step 3: Add 2 commands to the E-Mail menu. The first being
E$ with a CString of 1. The second one should be
an E+ command. (These should be stacked together
Give them a certain key, so that your cosysop
will hit this key to read the new user mail.)
Step 4: Add 2 commands to the E-Mail menu. The first
being E$ with a CString of 0. The second should
be an E-. (Stack these together, but make sure that
the key that you use is different than the key
that you used in Step 3. When the cosysop presses
this key, it will make it so that he reads his mail
normally (no new user mail).)
The members of the Oblivion/2 team, and all Oblivion/2
SysOps would like to thank you for your interest in
Oblivion/2. I hope this documentation helped you resolve many
of your problems with the BBS. Thank you for your support of
Oblivion/2, the leader in telecommunications excellence!